コード例 #1
0
        public void UpdateVisibility_SomeTilesWereLitButNoTilesAreVisible_NoTilesAreLitAfterwards()
        {
            var gameContext = new SceneContextMock {
                VisiblePositions = new HashSet <Position>()
            };
            var presenterMock = CreateTilePresenterMockWithRealIlluminateImplementation(gameContext);
            var presenter     = presenterMock.Object;

            presenter.UpdateVisibility(new HashSet <Position>());

            presenter.LitPositionsSaved.Should().BeEmpty();
        }
コード例 #2
0
        public void UpdateVisibility_NoTilesWereLitAndNoTilesBecomeVisible_NoTilesAreLitAfterwardsAndNoTilesGetAffected()
        {
            var gameContext = new SceneContextMock {
                VisiblePositions = new HashSet <Position>()
            };
            var presenterMock = CreateTilePresenterMockWithRealIlluminateImplementation(gameContext);

            presenterMock.Object.UpdateVisibility(new HashSet <Position>());
            var presenter = presenterMock.Object;

            presenter.LitPositionsSaved.Should().BeEmpty();
            presenterMock.Verify(a => a.SetUnseenMask(It.IsAny <Position>()), Times.Never);
        }
コード例 #3
0
        public void UpdateVisibility_SomeTilesWereLitButNoTilesAreVisible_PreviouslyLitTilesBecomeUnlit()
        {
            var firstLitTile  = new Position(3, 3);
            var secondLitTile = new Position(4, 4);
            var gameContext   = new SceneContextMock {
                VisiblePositions = new HashSet <Position>(new[] { firstLitTile, secondLitTile })
            };
            var presenterMock = CreateTilePresenterMockWithRealIlluminateImplementation(gameContext);
            var presenter     = presenterMock.Object;

            presenter.UpdateVisibility(new HashSet <Position>());

            presenterMock.Verify(a => a.SetUnseenMask(It.IsAny <Position>()), Times.Exactly(2));
            presenterMock.Verify(a => a.SetUnseenMask(firstLitTile), Times.Once);
            presenterMock.Verify(a => a.SetUnseenMask(secondLitTile), Times.Once);
        }
コード例 #4
0
        public void UpdateVisibility_NoTilesWereLitAndSomeTilesBecomeVisible_LitPositionsSavedSetIsAffectedAndUnseenMaskIsRemoved()
        {
            var firstVisibleTile  = new Position(1, 1);
            var secondVisibleTile = new Position(2, 2);
            var gameContext       = new SceneContextMock {
                VisiblePositions = new HashSet <Position>()
            };
            var presenterMock = CreateTilePresenterMockWithRealIlluminateImplementation(gameContext);
            var litTiles      = new HashSet <Position> {
                firstVisibleTile, secondVisibleTile
            };
            var presenter = presenterMock.Object;

            presenter.UpdateVisibility(litTiles);

            presenter.LitPositionsSaved.Should().BeEquivalentTo(litTiles);
            presenterMock.Verify(a => a.RemoveUnseenMask(It.IsAny <Position>()), Times.Exactly(2));
            presenterMock.Verify(a => a.RemoveUnseenMask(firstVisibleTile), Times.Once);
            presenterMock.Verify(a => a.RemoveUnseenMask(secondVisibleTile), Times.Once);
        }
コード例 #5
0
        public void UpdateVisibility_TwoTilesWereLitButOnlyOneIsVisible_OtherTileBecomesUnlitAndIsAffected()
        {
            var firstVisibleTile  = new Position(1, 1);
            var secondVisibleTile = new Position(2, 2);
            var gameContext       = new SceneContextMock {
                VisiblePositions = new HashSet <Position>()
            };
            var presenterMock     = CreateTilePresenterMockWithRealIlluminateImplementation(gameContext);
            var initiallyLitTiles = new HashSet <Position> {
                firstVisibleTile, secondVisibleTile
            };
            var visibleTiles = new HashSet <Position> {
                secondVisibleTile
            };

            gameContext.VisiblePositions = initiallyLitTiles;
            var presenter = presenterMock.Object;

            presenter.UpdateVisibility(visibleTiles);

            presenter.LitPositionsSaved.Should().BeEquivalentTo(visibleTiles);
            presenterMock.Verify(a => a.SetUnseenMask(It.IsAny <Position>()), Times.Once);
            presenterMock.Verify(a => a.SetUnseenMask(firstVisibleTile), Times.Once);
        }
コード例 #6
0
        public void Illuminate_TwoTilesAreVisibleAndOneOfThemWasAlreadyLit_NewlyLitTileBecomesLitAndIsAffected()
        {
            var firstVisibleTile  = new Position(1, 1);
            var secondVisibleTile = new Position(2, 2);
            var initiallyLitTiles = new HashSet <Position> {
                firstVisibleTile
            };
            var gameContext = new SceneContextMock {
                VisiblePositions = new HashSet <Position>()
            };
            var presenterMock = CreateTilePresenterMockWithRealIlluminateImplementation(gameContext);

            gameContext.VisiblePositions = initiallyLitTiles;
            var visibleTiles = new HashSet <Position> {
                firstVisibleTile, secondVisibleTile
            };
            var presenter = presenterMock.Object;

            presenter.UpdateIllumination(visibleTiles);

            presenter.LitPositionsSaved.Should().BeEquivalentTo(visibleTiles);
            presenterMock.Verify(a => a.SetUnseenMask(It.IsAny <Position>()), Times.Once);
            presenterMock.Verify(a => a.SetUnseenMask(secondVisibleTile), Times.Once);
        }
コード例 #7
0
 private static Mock <TilePresenter> CreateTilePresenterMockWithRealIlluminateImplementation(SceneContextMock sceneContext)
 {
     IOsnowaContextManager contextManager    = Mock.Of <IOsnowaContextManager>();
     ITileMatrixUpdater    tileMatrixUpdater = Mock.Of <ITileMatrixUpdater>();
     var mock = new Mock <TilePresenter>(sceneContext, default, contextManager, new TileByIdFromFolderProvider(), tileMatrixUpdater)
コード例 #8
0
        private static Mock <TilePresenter> CreateTilePresenterMockWithRealIlluminateImplementation(SceneContextMock sceneContext)
        {
            var mock = new Mock <TilePresenter>(sceneContext)
            {
                CallBase = true
            };

            mock.Setup(m => m.SetUnseenMask(It.IsAny <Position>()));
            return(mock);
        }