internal void ColonyRacetrackSettingsSetHandler(ColonyRacetrackSettingsSetMessage message)
        {
            m_Factory.Release(Source);

            Source = m_Factory.Create(message.TurnRadiusForPort,
                                      message.TurnRadiusForStarboard,
                                      message.IsPortTurnAllowed,
                                      message.IsStarboardTurnAllowed);

            m_Bus.PublishAsync(new ColonyRacetrackSettingsResponseMessage());
        }
        public void RacetrackSettingsSetMessageHandler_SendsMessage_WhenCalled()
        {
            var message = new ColonyRacetrackSettingsSetMessage
                          {
                              TurnRadius = 100.0,
                              IsPortTurnAllowed = true,
                              IsStarboardTurnAllowed = true
                          };

            m_Sut.ColonyRacetrackSettingsSetHandler(message);

            m_Bus.Received().PublishAsync(Arg.Any <ColonyRacetrackSettingsChangedMessage>());
        }
        public void RacetrackSettingsSetMessageHandler_CreatesNewSource_WhenCalled()
        {
            var message = new ColonyRacetrackSettingsSetMessage
                          {
                              TurnRadius = 100.0,
                              IsPortTurnAllowed = true,
                              IsStarboardTurnAllowed = true
                          };

            m_Sut.ColonyRacetrackSettingsSetHandler(message);

            IRacetrackSettingsSource actual = m_Sut.Source;

            Assert.AreEqual(100.0,
                            actual.TurnRadius);
            Assert.True(actual.IsPortTurnAllowed);
            Assert.True(actual.IsStarboardTurnAllowed);
        }