Ejemplo n.º 1
0
        public void Ctor_sets_id_and_creation_date()
        {
            // Act
            var state = new TimePeriod();

            // Act
            Assert.IsNotNull(state.Id, "No ID was generated.");
            Assert.IsFalse(state.CreationDate == default(DateTime));
        }
Ejemplo n.º 2
0
        public void Can_set_and_retrieve_start_time()
        {
            // Arrange
            var startTime = Mock.Of<ITimeOfDay>();

            // Act
            var state = new TimePeriod { StateStartTime = startTime };

            // Act
            Assert.AreEqual(startTime, state.StateStartTime);
        }
Ejemplo n.º 3
0
        public void Can_set_and_retrieve_name()
        {
            // Arrange
            string name = "Test";

            // Act
            var state = new TimePeriod { Name = name };

            // Act
            Assert.AreEqual(name, state.Name);
        }
Ejemplo n.º 4
0
        public async Task Can_get_the_time_state_has_been_alive()
        {
            // Arrange
            var state = new TimePeriod();

            // Act
            await Task.Delay(TimeSpan.FromSeconds(1));
            var aliveTime = (int)state.TimeAlive;

            // Act
            Assert.IsTrue(aliveTime >= 1);
        }
Ejemplo n.º 5
0
        public void Initialize_throws_exception_with_null_start_time()
        {
            // Arrange
            var state = new TimePeriod();

            // Act
            state.Start(null, 2);
        }
Ejemplo n.º 6
0
        public async Task State_clock_increments_by_the_hour()
        {
            // Arrange
            var state = new TimePeriod();
            var continueIncrementingHour = true;

            var day = Mock.Of<ITimeOfDay>(m => m.Hour == 5 && m.HoursPerDay == 24);
            Mock.Get(day)
                .Setup(m => m.IncrementByHour(It.IsAny<int>()))
                .Callback((int time) =>
                {
                    // This prevents the timer from incrementing the hours past what our test is expecting.
                    // We aren't testing the number of times that the timer increments the hours, 
                    // we are just testing that the timer actually increments the hours.
                    if (!continueIncrementingHour)
                    {

                        return;
                    }

                    day = Mock.Of<ITimeOfDay>(m => m.Hour == day.Hour + time && m.HoursPerDay == day.HoursPerDay);
                    state.StateStartTime = day;

                    continueIncrementingHour = false;
                });
             
            // Mock out the cloning of the ITimeOfDay instance.
            // The state initialization performs two clones at the moment.
            Mock.Get(day).Setup(mock => mock.Clone()).Returns(day);
            Mock.Get(day.Clone()).Setup(mock => mock.Clone()).Returns(day);

            // Act
            state.Start(day, 0.005);
            await Task.Delay(TimeSpan.FromSeconds(1));

            // Assert
            Assert.AreEqual(6, state.StateStartTime.Hour);
        }
Ejemplo n.º 7
0
        public void Initialize_assigns_time_of_day()
        {
            // Arrange
            var day = Mock.Of<ITimeOfDay>(m => m.Hour == 5 && m.HoursPerDay == 24);

            // Mock out the cloning of the ITimeOfDay instance.
            // The state initialization performs two clones at the moment.
            Mock.Get(day).Setup(mock => mock.Clone()).Returns(day);
            Mock.Get(day.Clone()).Setup(mock => mock.Clone()).Returns(day);

            var state = new TimePeriod();

            // Act
            state.Start(day, 0.05);

            // Assert
            Assert.IsNotNull(state.StateStartTime);
            Assert.AreEqual(5, state.StateStartTime.Hour);
            Assert.AreEqual(0, state.StateStartTime.Minute);
            Assert.AreEqual(24, state.StateStartTime.HoursPerDay);
        }
Ejemplo n.º 8
0
        public void Initialize_throws_exception_with_time_of_day_containing_no_hoursPerDay()
        {
            // Arrange
            var day = Mock.Of<ITimeOfDay>();
            var state = new TimePeriod();

            // Act
            state.Start(day, 2);
        }