Aura.Tests.Mabi.ErinnTimeTests.GetNextTime C# (CSharp) Method

GetNextTime() private method

private GetNextTime ( ) : void
return void
		public void GetNextTime()
		{
			// 12 hours
			{
				var now = DateTime.Parse("2016-01-01 00:00:00");
				var then = DateTime.Parse("2016-01-01 00:18:00");
				var time = ErinnTime.GetNextTime(now, 12, 0);
				Assert.Equal(then, time.DateTime);
			}

			// 24 hours
			{
				var now = DateTime.Parse("2016-01-01 00:00:00");
				var then = DateTime.Parse("2016-01-01 00:36:00");
				var time = ErinnTime.GetNextTime(now, 0, 0);
				Assert.Equal(then, time.DateTime);
			}

			// Hours
			for (int i = 1; i < 24; ++i)
			{
				var now = DateTime.Parse("2016-01-01 00:00:00");
				var then = now.AddSeconds(i * 90);
				var time = ErinnTime.GetNextTime(now, i, 0);
				Assert.Equal(then, time.DateTime);
			}

			// Minutes
			for (int i = 0; i < 60; ++i)
			{
				var now = DateTime.Parse("2016-01-01 00:00:00");
				var then = now.AddSeconds(90).AddMilliseconds(i * 1500);
				var time = ErinnTime.GetNextTime(now, 1, i);
				Assert.Equal(then, time.DateTime);
			}

			// 23 hours, rollover
			{
				var now = DateTime.Parse("2016-01-01 00:04:30");
				var then = now.AddSeconds(23 * 90);
				var time = ErinnTime.GetNextTime(now, 2, 0);
				Assert.Equal(then, time.DateTime);
			}

			// Real world 1
			{
				var now = DateTime.Parse("2016-12-02 16:32");
				var then = DateTime.Parse("2016-12-02 16:40:30");
				var time = ErinnTime.GetNextTime(now, 19, 0);
				Assert.Equal(then, time.DateTime);
			}

			// Real world 2
			{
				var now = DateTime.Parse("2016-12-02 11:17");
				var then = DateTime.Parse("2016-12-02 11:52:30");
				var time = ErinnTime.GetNextTime(now, 19, 0);
				Assert.Equal(then, time.DateTime);
			}

			// 2 hours based on now (one random test, just in case)
			{
				var erinnNow = ErinnTime.Now;
				var now = erinnNow.DateTime;
				var then = now.AddSeconds(2 * 90);
				var time = ErinnTime.GetNextTime(now, (erinnNow.Hour + 2) % 24, erinnNow.Minute);
				Assert.Equal(then, time.DateTime);
			}
		}
	}