public void GeneratedScene_WithSingleCharacterMessage_AndMessageIsRepeated_ReturnsCharacterAndMessageEndMarker()
        {
            var settings = new Settings("T");
              settings.RepeatMessage = true;
              var generatedScene = sceneGenerator.Generate(settings);

              Assert.AreEqual(2, generatedScene.Frames.Count);

              // First frame should be a dash (which is T)
              // Second frame should be the "end of message" marker
              var firstExpectedFrame = new Dash();
              var secondExpectedFrame = new MessageEndMarker();

              Assert.IsNotNull(generatedScene.Frames[0].LightSection);
              Assert.AreEqual(settings.Colour, generatedScene.Frames[0].LightSection.GetComponentSectionInDirection(eDirection.North)); // Sufficient to just test North
              Assert.AreEqual(firstExpectedFrame.Length * settings.UnitLength, generatedScene.Frames[0].Length);
              Assert.IsNotNull(generatedScene.Frames[1].LightSection);
              Assert.AreEqual(DefaultLights.Off, generatedScene.Frames[1].LightSection.GetComponentSectionInDirection(eDirection.North));
              Assert.AreEqual(secondExpectedFrame.Length * settings.UnitLength, generatedScene.Frames[1].Length);
        }
        public void GeneratedScene_WithMessageRepeated_EndsWithMessageEndMarker()
        {
            var settings = new Settings("Test");
              settings.RepeatMessage = true;
              var generatedScene = sceneGenerator.Generate(settings);

              var scene = generatedScene.Frames.Last();
              var expectedBlock = new MessageEndMarker();

              Assert.AreEqual(expectedBlock.Enabled, scene.LightSection.GetComponentSectionInDirection(eDirection.North) == settings.Colour);
              Assert.AreEqual(expectedBlock.Length * settings.UnitLength, scene.Length);
        }