Exemplo n.º 1
0
        public void Constructor_ModuleResourceWithNull_Logs()
        {
            var logger          = new LoggerMockup();
            var moduleResources = new[] { new SingularityModules(), };

            using (var scope = new GameScope(logger, new SceneScopeFactoryMockup(), new SceneEventsProviderMockup(), moduleResources))
            {
                Assert.Single(logger.Warnings);
            }
        }
    protected override void Execute(List <InputEntityG> entities)
    {
        var inputEntity = entities.SingleEntity();
        var input       = inputEntity.Get <InputG>();

        var e = GameScope.GetPieceWithPosition(input.value);

        if (e != null && e.Is <InteractiveG>())
        {
            e.Flag <DestroyedG>(true);
        }
    }
Exemplo n.º 3
0
        public void Disposed_ContainerIsDisposed()
        {
            var logger = new LoggerMockup();

            var moduleResources = new SingularityModules[0];

            using (var scope = new GameScope(logger, new SceneScopeFactoryMockup(), new SceneEventsProviderMockup(), moduleResources))
            {
                Assert.False(scope.Container.IsDisposed);
                scope.Dispose();
                Assert.True(scope.Container.IsDisposed);
            }
        }
Exemplo n.º 4
0
        public void Constructor_ModuleResourceHasInvalidConstructor_Logs()
        {
            var  logger         = new LoggerMockup();
            var  moduleResource = new SingularityModules();
            Type type           = typeof(TestModuleWithConstructor);

            moduleResource.Modules[0] = new ModuleRef(type);
            SingularityModules[] moduleResources = { moduleResource };
            using (var scope = new GameScope(logger, new SceneScopeFactoryMockup(), new SceneEventsProviderMockup(), moduleResources))
            {
                Assert.Single(logger.Warnings);
            }
        }
Exemplo n.º 5
0
        public void Constructor_ValidModuleResource_ReturnsDependency()
        {
            var  logger         = new LoggerMockup();
            var  moduleResource = new SingularityModules();
            Type type           = typeof(TestModule);

            moduleResource.Modules[0] = new ModuleRef(type);
            SingularityModules[] moduleResources = { moduleResource };
            using (var scope = new GameScope(logger, new SceneScopeFactoryMockup(), new SceneEventsProviderMockup(), moduleResources))
            {
                Assert.Empty(logger.Warnings);
                var instance = scope.Container.GetInstance <IModule>();
                Assert.IsType <TestModule>(instance);
            }
        }
Exemplo n.º 6
0
        public void SwitchScene_SceneScopeIsCreated()
        {
            var logger            = new LoggerMockup();
            var sceneScopeFactory = new SceneScopeFactoryMockup();

            var moduleResources     = new SingularityModules[0];
            var sceneEventsProvider = new SceneEventsProviderMockup();

            using (var scope = new GameScope(logger, sceneScopeFactory, sceneEventsProvider, moduleResources))
            {
                sceneEventsProvider.TriggerEntered();

                Assert.Single(sceneScopeFactory.CreateCalls);
            }
        }
Exemplo n.º 7
0
        public void Constructor_ModuleResourceInvalidType_Logs()
        {
            var logger         = new LoggerMockup();
            var moduleResource = new SingularityModules
            {
                Modules =
                {
                    [0] = new ModuleRef()
                }
            };

            SingularityModules[] moduleResources = { moduleResource };
            using (var scope = new GameScope(logger, new SceneScopeFactoryMockup(), new SceneEventsProviderMockup(), moduleResources))
            {
                Assert.Single(logger.Warnings);
            }
        }
Exemplo n.º 8
0
        public void SceneIsDisposed_SceneScopeIsDiposed()
        {
            var logger            = new LoggerMockup();
            var sceneScopeFactory = new SceneScopeFactoryMockup();

            var moduleResources     = new SingularityModules[0];
            var sceneEventsProvider = new SceneEventsProviderMockup();

            using (var scope = new GameScope(logger, sceneScopeFactory, sceneEventsProvider, moduleResources))
            {
                sceneEventsProvider.TriggerEntered();

                SceneScope createdSceneScope = sceneScopeFactory.CreatedSceneScopes[0];
                Assert.False(createdSceneScope.IsDisposed);

                sceneEventsProvider.TriggerLeaving();
                Assert.True(createdSceneScope.IsDisposed);
            }
        }
Exemplo n.º 9
0
        public void NewGame(int players, int victoryCards, int curseCards)
        {
            IEventAggregator eventAggregator = new MockEventAggregator();
            var      deckBuilder             = new DeckBuilder();
            var      supplyBuilder           = new SupplyBuilder(eventAggregator);
            var      playerBuilder           = new PlayerBuilder(eventAggregator, deckBuilder);
            var      scope    = new GameScope(eventAggregator, supplyBuilder, playerBuilder, new List <EndGameCondition>(), new MockBus(), new Container());
            GameSpec gameSpec = new GameSpec()
                                .BasicGame()
                                .WithSet <FirstGame>()
                                .WithPlayer(players.Times(() => new PlayerSpec()));

            Game game = new GameBuilder().Initialize(gameSpec, scope);

            game.Supply[Victory.Estate].Count.ShouldEqual(victoryCards, "Wrong number of estates");
            game.Supply[Victory.Duchy].Count.ShouldEqual(victoryCards, "Wrong number of duchies");
            game.Supply[Victory.Province].Count.ShouldEqual(victoryCards, "Wrong number of provinces");
            game.Supply[BasicCards.Curse].Count.ShouldEqual(curseCards, "Wrong number of curse cards");
            game.Players.Count().ShouldEqual(players, "Wrong number of players");
        }