diff --git a/Sources/Tests/Model_UTs/TurnTest.cs b/Sources/Tests/Model_UTs/TurnTest.cs index 47addb9..dc85b99 100644 --- a/Sources/Tests/Model_UTs/TurnTest.cs +++ b/Sources/Tests/Model_UTs/TurnTest.cs @@ -9,33 +9,74 @@ namespace Tests.Model_UTs [Fact] public void TestCreateWithSpecifiedTimeNotUTCThenValid() { + // Arrange + DateTime dateTime = new(year: 2018, month: 06, day: 15, hour: 16, minute: 30, second: 0, kind: DateTimeKind.Local); + Player player = new("Alice"); + Assert.NotEqual(DateTimeKind.Utc, dateTime.Kind); + + // Act + Turn turn = Turn.CreateWithSpecifiedTime(dateTime, player); + // Assert + Assert.Equal(DateTimeKind.Utc, turn.when.Kind); + Assert.Equal(dateTime.ToUniversalTime(), turn.when); } [Fact] public void TestCreateWithSpecifiedTimeUTCThenValid() { + // Arrange + DateTime dateTime = new(year: 2018, month: 06, day: 15, hour: 16, minute: 30, second: 0, kind: DateTimeKind.Utc); + Player player = new("Bobby"); + Assert.Equal(DateTimeKind.Utc, dateTime.Kind); + + // Act + Turn turn = Turn.CreateWithSpecifiedTime(dateTime, player); + // Assert + Assert.Equal(DateTimeKind.Utc, turn.when.Kind); + Assert.Equal(dateTime.ToUniversalTime(), turn.when); } [Fact] public void TestCreateWithSpecifiedTimeNullPlayerThenException() { + // Arrange + DateTime dateTime = new(year: 2018, month: 06, day: 15, hour: 16, minute: 30, second: 0, kind: DateTimeKind.Utc); + + // Act + void action() => Turn.CreateWithSpecifiedTime(dateTime, null); + // Assert + Assert.Throws(action); } [Fact] public void TestCreateWithDefaultTimeThenValid() { - // check that the date (not the time part) is the same as today - // ... would fail tests at 11:59:59pm -- acceptable (?) + // Arrange + Player player = new("Chloe"); + + // Act + Turn turn = Turn.CreateWithDefaultTime(player); + // Assert + Assert.Equal(DateTimeKind.Utc, turn.when.Kind); + Assert.Equal(DateTime.Now.ToUniversalTime().Date, turn.when.Date); + /*** N.B.: might fail between 11:59:59PM and 00:00:00AM ***/ } [Fact] public void TestCreateWithDefaultTimeNullPlayerThenException() { + // Arrange + Player player = new("Devon"); + // Act + static void action() => Turn.CreateWithDefaultTime(null); + + // Assert + Assert.Throws(action); } [Fact]