Working calculator

This commit is contained in:
2024-02-08 17:18:38 +01:00
commit 719444c06e
15 changed files with 1476 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
using GrpcCalculator.Server;
namespace GrpcCalculator.ServerTests;
public class CalculatorTests
{
[Fact]
public void SimpleAddition()
{
var calculator = new Calculator();
calculator = calculator.DigitPressed("5");
Assert.Equal("5", calculator.Display);
calculator = calculator.OperatorPressed(CalculatorOperator.Addition);
Assert.Equal("5", calculator.Display);
calculator = calculator.DigitPressed("4");
Assert.Equal("4", calculator.Display);
calculator = calculator.EqualsPressed();
Assert.Equal("9", calculator.Display);
}
[Fact]
public void JustEquals()
{
var calculator = new Calculator();
Assert.Equal("0", calculator.Display);
calculator = calculator.EqualsPressed();
Assert.Equal("0", calculator.Display);
}
[Fact]
public void MultipleEquals()
{
var calculator = new Calculator();
calculator = calculator.DigitPressed("2");
Assert.Equal("2", calculator.Display);
calculator = calculator.OperatorPressed(CalculatorOperator.Multiplication);
Assert.Equal("2", calculator.Display);
calculator = calculator.EqualsPressed();
Assert.Equal("4", calculator.Display);
calculator = calculator.EqualsPressed();
Assert.Equal("8", calculator.Display);
}
}

View File

@@ -0,0 +1 @@
global using Xunit;

View File

@@ -0,0 +1,31 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<RootNamespace>GrpcCalculator.ServerTests</RootNamespace>
<AssemblyName>GrpcCalculatorServerTests</AssemblyName>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.0" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="6.0.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Server\Server.csproj" />
</ItemGroup>
</Project>