From 85e16cf5901c2aa92a80fd31adc75021920c34e4 Mon Sep 17 00:00:00 2001 From: Alexis DRAI Date: Tue, 20 Sep 2022 14:57:45 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20Implement=20UTs=20on=20Turn=20class?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sources/Tests/Model_UTs/TurnTest.cs | 45 +++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) 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]