Ejemplo n.º 1
0
        public void StateTest()
        {
            var screen = new MockScreen();

            Assert.AreEqual(LifecycleState.Undefined, screen.State);
            Assert.False(screen.IsActive);

            screen.Close();
            Assert.AreEqual(LifecycleState.Undefined, screen.State);
            Assert.False(screen.IsActive);

            screen.Activate();
            Assert.AreEqual(LifecycleState.Active, screen.State);
            Assert.True(screen.IsActive);

            screen.Deactivate();
            Assert.AreEqual(LifecycleState.Inactive, screen.State);
            Assert.False(screen.IsActive);

            screen.Close();
            Assert.AreEqual(LifecycleState.Closed, screen.State);
            Assert.False(screen.IsActive);

            screen.Activate();
            Assert.AreEqual(LifecycleState.Closed, screen.State);
            Assert.False(screen.IsActive);

            screen.Deactivate();
            Assert.AreEqual(LifecycleState.Closed, screen.State);
            Assert.False(screen.IsActive);
        }
Ejemplo n.º 2
0
        public void OnClosedTest()
        {
            var screen = new MockScreen();

            Assert.AreEqual(0, screen.OnClosedCalledCount);

            screen.Close();
            Assert.AreEqual(0, screen.OnClosedCalledCount);

            screen.Deactivate();
            screen.Close();
            Assert.AreEqual(0, screen.OnClosedCalledCount);

            screen.Activate();
            screen.Close();
            Assert.AreEqual(1, screen.OnClosedCalledCount);

            screen.Close();
            Assert.AreEqual(1, screen.OnClosedCalledCount);

            screen.Activate();
            screen.Deactivate();
            screen.Close();
            Assert.AreEqual(1, screen.OnClosedCalledCount);
        }
Ejemplo n.º 3
0
        public void ScreenManager_ChangeScreen_ShouldRunInitialize()
        {
            var        world   = TestHelpers.CreateEntityWorld();
            var        manager = new ScreenManager(world);
            MockScreen screen  = new MockScreen();

            manager.ChangeScreen(screen);

            Assert.IsTrue(screen.InitializeCalled);
        }
Ejemplo n.º 4
0
        public void ScreenManager_Draw_ShouldRunScreenDraw()
        {
            var        world   = TestHelpers.CreateEntityWorld();
            var        manager = new ScreenManager(world);
            MockScreen screen  = new MockScreen();

            manager.ChangeScreen(screen);
            manager.Draw();

            Assert.IsTrue(screen.DrawCalled);
        }
Ejemplo n.º 5
0
        public void ActivateItemWhenConductorIsInactiveTest()
        {
            var item = new MockScreen();

            Assert.AreEqual(0, _conductor.OnConductorActivatedCalledCount);
            Assert.AreEqual(0, item.OnActivatedCalledCount);

            _conductor.ActivateItem(item);

            Assert.AreEqual(0, _conductor.OnConductorActivatedCalledCount);
            Assert.AreEqual(0, item.OnActivatedCalledCount);
        }
Ejemplo n.º 6
0
        public void NextItemAfterOnlyItemClosedTest()
        {
            var item = new MockScreen();

            _conductor.Activate();
            _conductor.ActivateItem(item);

            Assert.AreEqual(item, _conductor.ActiveItem);

            _conductor.CloseItem(item);

            Assert.Null(_conductor.ActiveItem);
        }
Ejemplo n.º 7
0
        public void CloseConductorTest()
        {
            var item1 = new MockScreen();
            var item2 = new MockScreen();

            _conductor.Activate();
            _conductor.ActivateItem(item1);
            _conductor.ActivateItem(item2);

            Assert.AreEqual(0, item1.OnClosedCalledCount);
            Assert.AreEqual(0, item2.OnClosedCalledCount);

            _conductor.Close();

            Assert.AreEqual(1, item1.OnClosedCalledCount);
            Assert.AreEqual(1, item2.OnClosedCalledCount);
        }
Ejemplo n.º 8
0
        public void NextItemAfterLastClosedTest()
        {
            var item1 = new MockScreen();
            var item2 = new MockScreen();
            var item3 = new MockScreen();
            var item4 = new MockScreen();

            _conductor.Activate();
            _conductor.ActivateItem(item1);
            _conductor.ActivateItem(item2);
            _conductor.ActivateItem(item3);
            _conductor.ActivateItem(item4);

            _conductor.ActiveItem = item4;
            _conductor.CloseItem(item4);

            Assert.AreEqual(item3, _conductor.ActiveItem);
        }
Ejemplo n.º 9
0
        public void ChangeActiveItemActivateDeactivateTest()
        {
            var item1 = new MockScreen();
            var item2 = new MockScreen();

            _conductor.Activate();
            _conductor.ActivateItem(item1);

            Assert.AreEqual(1, item1.OnActivatedCalledCount);
            Assert.AreEqual(0, item1.OnDeactivatedCalledCount);
            Assert.AreEqual(0, item2.OnActivatedCalledCount);
            Assert.AreEqual(0, item2.OnDeactivatedCalledCount);

            _conductor.ActivateItem(item2);

            Assert.AreEqual(1, item1.OnActivatedCalledCount);
            Assert.AreEqual(1, item1.OnDeactivatedCalledCount);
            Assert.AreEqual(1, item2.OnActivatedCalledCount);
            Assert.AreEqual(0, item2.OnDeactivatedCalledCount);

            _conductor.ActiveItem = item1;

            Assert.AreEqual(2, item1.OnActivatedCalledCount);
            Assert.AreEqual(1, item1.OnDeactivatedCalledCount);
            Assert.AreEqual(1, item2.OnActivatedCalledCount);
            Assert.AreEqual(1, item2.OnDeactivatedCalledCount);

            _conductor.ActiveItem = item2;

            Assert.AreEqual(2, item1.OnActivatedCalledCount);
            Assert.AreEqual(2, item1.OnDeactivatedCalledCount);
            Assert.AreEqual(2, item2.OnActivatedCalledCount);
            Assert.AreEqual(1, item2.OnDeactivatedCalledCount);

            _conductor.ActiveItem = null;

            Assert.AreEqual(2, item1.OnActivatedCalledCount);
            Assert.AreEqual(2, item1.OnDeactivatedCalledCount);
            Assert.AreEqual(2, item2.OnActivatedCalledCount);
            Assert.AreEqual(2, item2.OnDeactivatedCalledCount);
        }
Ejemplo n.º 10
0
        public void CanBeClosedTest()
        {
            var item1 = new MockScreen();
            var item2 = new MockScreen();

            _conductor.ActivateItem(item1);
            _conductor.ActivateItem(item2);

            _conductor.CanBeClosedReturnValue = true;
            item1.CanBeClosedReturnValue      = true;
            item2.CanBeClosedReturnValue      = true;

            Assert.True(_conductor.CanBeClosed());

            _conductor.CanBeClosedReturnValue = false;
            item1.CanBeClosedReturnValue      = true;
            item2.CanBeClosedReturnValue      = true;

            Assert.False(_conductor.CanBeClosed());

            _conductor.CanBeClosedReturnValue = true;
            item1.CanBeClosedReturnValue      = false;
            item2.CanBeClosedReturnValue      = true;

            Assert.False(_conductor.CanBeClosed());

            _conductor.CanBeClosedReturnValue = true;
            item1.CanBeClosedReturnValue      = true;
            item2.CanBeClosedReturnValue      = false;

            Assert.False(_conductor.CanBeClosed());

            _conductor.CanBeClosedReturnValue = false;
            item1.CanBeClosedReturnValue      = false;
            item2.CanBeClosedReturnValue      = false;

            Assert.False(_conductor.CanBeClosed());
        }
Ejemplo n.º 11
0
        private string RunGame(string storyName, string scriptName = null)
        {
            var story = Story.FromStream(Resources.LoadStream(storyName));

            story.RegisterInterpreter(new MockInterpreter());

            var scriptCommands = scriptName != null
                ? Resources.LoadLines(scriptName)
                : null;

            var mockScreen = new MockScreen(
                scriptCommands,
                doneAction: () =>
            {
                throw new ZMachineInterruptedException();
            });

            var machine = new CompiledZMachine(story);

            machine.RegisterScreen(mockScreen);
            machine.SetRandomSeed(42);

            try
            {
                machine.Run();
            }
            catch (ZMachineQuitException)
            {
                // done
            }
            catch (ZMachineInterruptedException)
            {
                // done
            }

            return(mockScreen.Output);
        }