コード例 #1
0
        public void ItReportsIfPartitioningIsRequired()
        {
            // Arrange
            var activeAndPartitioned = new SimulationModel
            {
                Enabled              = true,
                StartTime            = DateTimeOffset.UtcNow.AddHours(-2),
                EndTime              = DateTimeOffset.UtcNow.AddHours(+1),
                PartitioningComplete = true
            };

            var activeAndNotPartitioned = new SimulationModel
            {
                Enabled              = true,
                StartTime            = DateTimeOffset.UtcNow.AddHours(-2),
                EndTime              = DateTimeOffset.UtcNow.AddHours(+1),
                PartitioningComplete = false
            };
            var notActiveAndNotPartitioned = new SimulationModel
            {
                Enabled              = true,
                StartTime            = DateTimeOffset.UtcNow.AddHours(-2),
                EndTime              = DateTimeOffset.UtcNow.AddHours(-1),
                PartitioningComplete = false
            };

            // Assert
            Assert.False(activeAndPartitioned.PartitioningRequired);
            Assert.True(activeAndNotPartitioned.PartitioningRequired);
            Assert.False(notActiveAndNotPartitioned.PartitioningRequired);
        }
コード例 #2
0
        public void ItReportsIfDevicesShouldBeCreated()
        {
            // Arrange
            var shouldCreate1 = new SimulationModel
            {
                Enabled                 = true,
                StartTime               = DateTimeOffset.UtcNow.AddHours(-2),
                EndTime                 = DateTimeOffset.UtcNow.AddHours(+1),
                PartitioningComplete    = true,
                DevicesCreationComplete = false
            };
            var shouldCreate2 = new SimulationModel
            {
                Enabled                 = true,
                StartTime               = DateTimeOffset.UtcNow.AddHours(-2),
                EndTime                 = DateTimeOffset.UtcNow.AddHours(+1),
                PartitioningComplete    = false,
                DevicesCreationComplete = false
            };
            var shouldNotCreateNotActive = new SimulationModel
            {
                Enabled                 = true,
                StartTime               = DateTimeOffset.UtcNow.AddHours(-2),
                EndTime                 = DateTimeOffset.UtcNow.AddHours(-1),
                PartitioningComplete    = true,
                DevicesCreationComplete = false
            };

            // Assert
            Assert.True(shouldCreate1.DeviceCreationRequired);
            Assert.True(shouldCreate2.DeviceCreationRequired);
            Assert.False(shouldNotCreateNotActive.DeviceCreationRequired);
        }
コード例 #3
0
        public void ItReportsIfItIsActive()
        {
            // Arrange
            var enabledButEnded = new SimulationModel
            {
                Enabled   = true,
                StartTime = DateTimeOffset.UtcNow.AddHours(-2),
                EndTime   = DateTimeOffset.UtcNow.AddHours(-1)
            };

            var currentButDisabled = new SimulationModel
            {
                Enabled   = false,
                StartTime = DateTimeOffset.UtcNow.AddHours(-2),
                EndTime   = DateTimeOffset.UtcNow.AddHours(+1)
            };

            var currentAndEnabled = new SimulationModel
            {
                Enabled   = true,
                StartTime = DateTimeOffset.UtcNow.AddHours(-2),
                EndTime   = DateTimeOffset.UtcNow.AddHours(+1)
            };

            // Assert
            Assert.False(enabledButEnded.IsActiveNow);
            Assert.False(currentButDisabled.IsActiveNow);
            Assert.True(currentAndEnabled.IsActiveNow);
        }
コード例 #4
0
        public void CheckIfDevicesDeletionRequiredIsPopulatedCorrect(
            bool enabled,
            bool deleteDevicesOnce,
            bool devicesCreationComplete,
            bool deleteDevicesWhenSimulationEnds,
            bool expected)
        {
            // Arrange and Act
            var target = new SimulationModel
            {
                Enabled                         = enabled,
                DeleteDevicesOnce               = deleteDevicesOnce,
                DevicesCreationComplete         = devicesCreationComplete,
                DeleteDevicesWhenSimulationEnds = deleteDevicesWhenSimulationEnds
            };

            //Assert
            Assert.Equal(target.DeviceDeletionRequired, expected);
        }
コード例 #5
0
        public void ItReportsIfItShouldBeRunning()
        {
            // Arrange
            var shouldBeRunning = new SimulationModel
            {
                Enabled                 = true,
                StartTime               = DateTimeOffset.UtcNow.AddHours(-2),
                EndTime                 = DateTimeOffset.UtcNow.AddHours(+1),
                PartitioningComplete    = true,
                DevicesCreationComplete = true
            };
            var notRunningPartitioningIncomplete = new SimulationModel
            {
                Enabled                 = true,
                StartTime               = DateTimeOffset.UtcNow.AddHours(-2),
                EndTime                 = DateTimeOffset.UtcNow.AddHours(+1),
                PartitioningComplete    = false,
                DevicesCreationComplete = true
            };
            var notRunningCreationIncomplete = new SimulationModel
            {
                Enabled                 = true,
                StartTime               = DateTimeOffset.UtcNow.AddHours(-2),
                EndTime                 = DateTimeOffset.UtcNow.AddHours(+1),
                PartitioningComplete    = true,
                DevicesCreationComplete = false
            };
            var notRunningNotActive = new SimulationModel
            {
                Enabled                 = true,
                StartTime               = DateTimeOffset.UtcNow.AddHours(-2),
                EndTime                 = DateTimeOffset.UtcNow.AddHours(-1),
                PartitioningComplete    = true,
                DevicesCreationComplete = true
            };

            // Assert
            Assert.True(shouldBeRunning.ShouldBeRunning);
            Assert.False(notRunningPartitioningIncomplete.ShouldBeRunning);
            Assert.False(notRunningCreationIncomplete.ShouldBeRunning);
            Assert.False(notRunningNotActive.ShouldBeRunning);
        }
コード例 #6
0
        private void SetupSimulationForRunner()
        {
            var simulation = new SimulationModel
            {
                Id       = SIMULATION_ID,
                Created  = DateTimeOffset.UtcNow.Subtract(TimeSpan.FromDays(10)),
                Modified = DateTimeOffset.UtcNow.Subtract(TimeSpan.FromDays(10)),
                ETag     = "ETag0",
                Enabled  = true
            };

            var simulations = new List <SimulationModel>
            {
                simulation
            };

            this.simulations
            .Setup(x => x.GetListAsync())
            .ReturnsAsync(simulations);
        }