Skip to content

Commit

Permalink
Added Bonus check and division tests
Browse files Browse the repository at this point in the history
  • Loading branch information
n873 committed Jun 24, 2018
1 parent 850bd0a commit dc5b230
Show file tree
Hide file tree
Showing 4 changed files with 113 additions and 3 deletions.
4 changes: 4 additions & 0 deletions Lotto.Domain.Contant/DivisionResult.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,13 @@
{
public static class DivisionResult
{
public const string Division8 = "Winner - Division 8";
public const string Division7 = "Winner - Division 7";
public const string Division6 = "Winner - Division 6";
public const string Division5 = "Winner - Division 5";
public const string Division4 = "Winner - Division 4";
public const string Division3 = "Winner - Division 3";
public const string Division2 = "Winner - Division 2";
public const string Division1 = "Winner - Division 1";
public const string NoDivision = "Not a winner";
}
Expand Down
25 changes: 23 additions & 2 deletions Lotto.Domain.Model/LottoGame.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,28 @@ public virtual string GetDivision(params int[] draw)

if (matches != null && matches.Count > 0)
{
switch (matches.Count)
var matchesCount = matches.Count;
if (_Draw.Length > 6)
{
var bonusMatch = matches.Any(number => number == _Draw[6]);

if (bonusMatch)
switch (matchesCount)
{
case 3:
return DivisionResult.Division8;
case 4:
return DivisionResult.Division6;
case 5:
return DivisionResult.Division4;
case 6:
return DivisionResult.Division2;
default:
break;
}
}

switch (matchesCount)
{
case 3:
return DivisionResult.Division7;
Expand All @@ -61,5 +82,5 @@ public virtual string GetDivision(params int[] draw)
}
}


}
86 changes: 85 additions & 1 deletion Lotto.Test/DivisionTest.cs
Original file line number Diff line number Diff line change
@@ -1,30 +1,114 @@
using Lotto.Domain.Contant;
using Lotto.Domain.Model;
using Lotto.Utility;
using Xunit;

namespace Lotto.Test
{
public class DivisionTest
{
private readonly ILotto lottoInstance;
private readonly int[] randomSelection;

public DivisionTest()
{
lottoInstance = Lottery.Domain.Factory.GameFactory.Get(GameType.SALotto, "2018-06-06");
lottoInstance.CaptureDraw(29, 15, 22, 41, 19, 4, 17);
var randomDraw = LotteryUtility.GenerateNumbers();
lottoInstance.CaptureDraw(randomDraw);
randomSelection = new int[7];
randomDraw.CopyTo(randomSelection, 0);
}

[Fact]
public void NotWinnerTest()
{
lottoInstance.CaptureDraw(29, 15, 22, 41, 19, 4, 17);

var result = lottoInstance.GetDivision(1, 3, 20, 21, 30, 31);
Assert.Equal(DivisionResult.NoDivision, result);
}

[Fact]
public void WinnerDivison3Test() {
lottoInstance.CaptureDraw(29, 15, 22, 41, 19, 4, 17);

var result = lottoInstance.GetDivision(3, 15, 19, 22, 29, 41);
Assert.Equal(DivisionResult.Division3, result);
}

[Fact]
public void WinnerDivison1Test()
{
randomSelection[6] = 0;

var result = lottoInstance.GetDivision(randomSelection);
Assert.Equal(DivisionResult.Division1, result);
}

[Fact]
public void WinnerDivison2Test()
{
randomSelection[0] = 0;

var result = lottoInstance.GetDivision(randomSelection);
Assert.Equal(DivisionResult.Division2, result);
}

[Fact]
public void WinnerDivison3Test_2()
{
randomSelection[6] = 0;

randomSelection[0] = 0;

var result = lottoInstance.GetDivision(randomSelection);
Assert.Equal(DivisionResult.Division3, result);
}

[Fact]
public void WinnerDivison4Test()
{
randomSelection[0] = 0;
randomSelection[1] = 0;

var result = lottoInstance.GetDivision(randomSelection);
Assert.Equal(DivisionResult.Division4, result);
}

[Fact]
public void WinnerDivison5Test()
{
randomSelection[6] = 0;

randomSelection[0] = 0;
randomSelection[1] = 0;

var result = lottoInstance.GetDivision(randomSelection);
Assert.Equal(DivisionResult.Division5, result);
}

[Fact]
public void WinnerDivison6Test()
{
randomSelection[0] = 0;
randomSelection[1] = 0;
randomSelection[2] = 0;

var result = lottoInstance.GetDivision(randomSelection);
Assert.Equal(DivisionResult.Division6, result);
}

[Fact]
public void WinnerDivison7Test()
{
randomSelection[6] = 0;

randomSelection[0] = 0;
randomSelection[1] = 0;
randomSelection[2] = 0;

var result = lottoInstance.GetDivision(randomSelection);
Assert.Equal(DivisionResult.Division7, result);
}
}
}
1 change: 1 addition & 0 deletions Lotto.Test/Lotto.Test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<ItemGroup>
<ProjectReference Include="..\Lottery.Domain.Factory\Lottery.Domain.Factory.csproj" />
<ProjectReference Include="..\Lotto.Domain.Model\Lotto.Domain.Model.csproj" />
<ProjectReference Include="..\LottoUtility\Lotto.Utility.csproj" />
</ItemGroup>

</Project>

0 comments on commit dc5b230

Please sign in to comment.