예제 #1
0
        public void StartQuestInvalidPositionTest()
        {
            //Arrange
            int position = 1;

            List <Quest> leaves = new List <Quest>();

            IQuestListModel model = MockRepository.GenerateStrictMock <IQuestListModel>();

            model.Expect(rep => rep.Leaves).Repeat.Once().Return(leaves);

            IStateCommandsFactory stateCommands = MockRepository.GenerateStrictMock <IStateCommandsFactory>();

            stateCommands.Expect(sc => sc.StartQuest(Arg <Quest> .Is.Anything)).
            Repeat.Never();

            ITreeCommandsFactory repoCommands = MockRepository.GenerateStrictMock <ITreeCommandsFactory>();

            QuestListViewModel viewModel = new QuestListViewModel(model, stateCommands, repoCommands);

            //Act
            Task deleteTask = viewModel.StartQuest(position);

            //Assert
            Assert.IsNull(deleteTask);

            model.VerifyAllExpectations();
            stateCommands.VerifyAllExpectations();
            repoCommands.VerifyAllExpectations();
        }
예제 #2
0
        public void StartQuestValidPositionTest()
        {
            //Arrange
            int   position = 0;
            Quest toStart  = new FakeQuest();

            List <Quest> leaves = new List <Quest> {
                toStart
            };

            ICommand startCommand = MockRepository.GenerateStrictMock <ICommand>();

            startCommand.Expect(dc => dc.Execute()).
            Repeat.Once().
            Return(true);
            startCommand.Expect(dc => dc.Commit()).
            Repeat.Once().
            Return(true);

            IQuestListModel model = MockRepository.GenerateStrictMock <IQuestListModel>();

            model.Expect(rep => rep.Leaves).
            Repeat.Once().
            Return(leaves);

            IStateCommandsFactory stateCommands = MockRepository.GenerateStrictMock <IStateCommandsFactory>();

            stateCommands.Expect(sc => sc.StartQuest(Arg <Quest> .Is.Equal(toStart))).
            Repeat.Once().
            Return(startCommand);

            ITreeCommandsFactory repoCommands = MockRepository.GenerateStrictMock <ITreeCommandsFactory>();

            QuestListViewModel viewModel = new QuestListViewModel(model, stateCommands, repoCommands);

            //Act
            Task startTask = viewModel.StartQuest(position);

            //Assert
            Assert.IsNotNull(startTask);
            startTask.Wait();

            startCommand.VerifyAllExpectations();
            model.VerifyAllExpectations();
            stateCommands.VerifyAllExpectations();
            repoCommands.VerifyAllExpectations();
        }