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); }