public void DeserializesMinimalGraphicsConfigFiles() { using var dir = new TestFolder(); dir.WriteText("MinimalConfig.xml", _minimalConfig); var status = GraphicsConfig.FromFile(dir.Resolve("MinimalConfig.xml")); Assert.Null(status.GuiColour); }
public void ReturnsNullWhenTheGraphicsConfigFileIsMissingOrEmpty() { using var dir = new TestFolder(); var status = GraphicsConfig.FromFile(dir.Resolve("NonExistingFile.xml")); Assert.Null(status); dir.WriteText("EmptyConfig.xml", string.Empty); status = GraphicsConfig.FromFile(dir.Resolve("EmptyConfig.xml")); Assert.Null(status); }
public async Task GameInBackgroundLayerSetsAColorPerGameProcessState(bool wasInBackground, GameProcessState processState, int?startRgbColor, int?endRgbColor) { const double fadeDurationSeconds = 1; var expectedStartColor = startRgbColor.HasValue ? Color.FromRgb((uint)startRgbColor.Value) : (Color?)null; var expectedEndColor = endRgbColor.HasValue ? Color.FromRgb((uint)endRgbColor.Value) : (Color?)null; var graphicsConfig = GraphicsConfig.FromFile(_gif.GraphicsConfiguration.FullName); var bl = new GameInBackroundLayer(); bl.SetPrivateField("_inBackground", wasInBackground); var le = new LayeredEffect(); le.Add(bl); var chroma = new Mock <IChroma> { DefaultValue = DefaultValue.Mock }; CustomKeyboardEffect?keyboard = null; Mock.Get(chroma.Object.Keyboard) .Setup(x => x.SetCustomAsync(It.IsAny <CustomKeyboardEffect>())) .Callback((CustomKeyboardEffect c) => keyboard = c); var game = new GameState { ProcessState = processState, GuiColour = graphicsConfig.GuiColour.Default, }; var state = new LayerRenderState(game, new ChromaColors()); game.Now = DateTimeOffset.UtcNow; await le.Render(chroma.Object, state).ConfigureAwait(false); #pragma warning disable CA1508 Assert.Equal(expectedStartColor, keyboard?[(Key)0]); #pragma warning restore CA1508 keyboard = null; game.Now += TimeSpan.FromSeconds(fadeDurationSeconds); await le.Render(chroma.Object, state).ConfigureAwait(false); #pragma warning disable CA1508 Assert.Equal(expectedEndColor, keyboard?[(Key)0]); #pragma warning restore CA1508 }
public void DeserializesGraphicsConfigFiles() { var config = GraphicsConfig.FromFile(_gif.GraphicsConfiguration.FullName); Assert.NotNull(config); Assert.Equal(3, config.GuiColour.Count); var gc = config.GuiColour.Default; Assert.NotNull(gc); Assert.Equal("Standard", gc.LocalisationName); Assert.Equal(1, gc.MatrixRed.Red); Assert.Equal(1, gc.MatrixGreen.Green); Assert.Equal(1, gc.MatrixBlue.Blue); var cm = (IRgbTransformMatrix)gc; Assert.Equal(1, cm[0, 0]); Assert.Equal(1, cm[1, 1]); Assert.Equal(1, cm[2, 2]); }
public async Task BackgroundLayerSetsAColorPerGameProcessState(GameProcessState processState, int rgbColor, double brightness) { var graphicsConfig = GraphicsConfig.FromFile(_gif.GraphicsConfiguration.FullName); var le = new LayeredEffect(); le.Add(new BackgroundLayer()); var chroma = new Mock <IChroma> { DefaultValue = DefaultValue.Mock }; CustomKeyboardEffect keyboard; Mock.Get(chroma.Object.Keyboard) .Setup(x => x.SetCustomAsync(It.IsAny <CustomKeyboardEffect>())) .Callback((CustomKeyboardEffect c) => keyboard = c); var game = new GameState { ProcessState = processState, GuiColour = graphicsConfig.GuiColour.Default, }; var state = new LayerRenderState(game, new ChromaColors()); game.Now = DateTimeOffset.UtcNow; await le.Render(chroma.Object, state).ConfigureAwait(false); Assert.Equal(Color.Black, keyboard[0]); var expectedColor = Color.FromRgb((uint)rgbColor).Transform(brightness); game.Now += TimeSpan.FromSeconds(1); await le.Render(chroma.Object, state).ConfigureAwait(false); Assert.Equal(expectedColor, keyboard[0]); }