コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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
        }
コード例 #4
0
        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]);
        }
コード例 #5
0
        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]);
        }