Beispiel #1
0
        public void GetMultipleMappings_Test()
        {
            var stoneProvider = new StoneProvider();

            foreach (var testmappings in stoneProvider.Controllers.Values)
            {
                var realmapping =
                    JsonConvert.DeserializeObject <ControllerLayout>(
                        TestUtilities.GetStringResource("InputMappings.keyboard_device.json"));
                var mapcol = ControllerElementMappings.GetDefaultMappings(realmapping, testmappings);

                var optionsBuilder = new DbContextOptionsBuilder <DatabaseContext>();
                optionsBuilder.UseSqlite($"Data Source={Path.GetTempFileName()}");
                var elementStore = new ControllerElementMappingsStore(optionsBuilder);

                elementStore.AddMappings(mapcol, "default");
                elementStore.AddMappings(mapcol, "default2");

                Assert.Equal(2, elementStore.GetMappings(mapcol.ControllerId, mapcol.DeviceId).Count());
                elementStore.DeleteMappings(mapcol.ControllerId, mapcol.DeviceId, "default");
                Assert.Single(elementStore.GetMappings(mapcol.ControllerId, mapcol.DeviceId));
                elementStore.DeleteMappings(mapcol.ControllerId, mapcol.DeviceId);
                Assert.Empty(elementStore.GetMappings(mapcol.ControllerId, mapcol.DeviceId));
            }
        }
Beispiel #2
0
        public void AddGamepadMappings_Test()
        {
            var stoneProvider = new StoneProvider();

            foreach (var testmappings in stoneProvider.Controllers.Values)
            {
                var realmapping =
                    JsonConvert.DeserializeObject <ControllerLayout>(
                        TestUtilities.GetStringResource("InputMappings.xinput_device.json"));
                var mapcol = ControllerElementMappings.GetDefaultMappings(realmapping, testmappings);

                var optionsBuilder = new DbContextOptionsBuilder <DatabaseContext>();
                optionsBuilder.UseSqlite($"Data Source={Path.GetTempFileName()}");

                var elementStore = new ControllerElementMappingsStore(optionsBuilder);

                elementStore.AddMappings(mapcol, "default");

                var retStore = elementStore.GetMappings(mapcol.ControllerId, mapcol.DeviceId, "default");

                foreach (var element in retStore)
                {
                    Assert.Contains(element.LayoutElement, mapcol.Select(x => x.LayoutElement));
                    Assert.Equal(element.DeviceElement,
                                 mapcol.First(x => x.LayoutElement == element.LayoutElement).DeviceElement);
                }
            }
        }
Beispiel #3
0
        public void UpdateMappedInputCollectionGamepad_Test()
        {
            var stoneProvider = new StoneProvider();

            foreach (var testmappings in stoneProvider.Controllers.Values)
            {
                var realmapping =
                    JsonConvert.DeserializeObject <ControllerLayout>(
                        TestUtilities.GetStringResource("InputMappings.xinput_device.json"));
                var mapcol = ControllerElementMappings.GetDefaultMappings(realmapping, testmappings);

                var optionsBuilder = new DbContextOptionsBuilder <DatabaseContext>();
                optionsBuilder.UseSqlite($"Data Source={Path.GetTempFileName()}");

                var elementStore = new ControllerElementMappingsStore(optionsBuilder);

                elementStore.AddMappings(mapcol, "default");

                // map buttonA to buttonB.
                mapcol[ControllerElement.ButtonA] = ControllerElement.ButtonB;

                elementStore.UpdateMappings(mapcol, "default");
                var retStore = elementStore.GetMappings(mapcol.ControllerId, mapcol.DeviceId, "default");

                foreach (var element in retStore)
                {
                    Assert.Contains(element.LayoutElement, mapcol.Select(x => x.LayoutElement));
                    Assert.Equal(element.DeviceElement,
                                 mapcol.First(x => x.LayoutElement == element.LayoutElement).DeviceElement);
                }

                // Switch left joycon has no A button
                if (testmappings.Layout[ControllerElement.ButtonA] != null)
                {
                    Assert.Equal(ControllerElement.ButtonB, retStore[ControllerElement.ButtonA]);
                }
            }
        }