public void TestAtExecuteDontExecuteDependencyCommandHvisCanExecuteOnDepencendyCommandErFalse() { var fixture = new Fixture(); fixture.Customize <DateTime>(e => e.FromFactory(() => DateTime.Now)); var dependencyCommandMock = MockRepository.GenerateMock <ITaskableCommand>(); dependencyCommandMock.Expect(m => m.CanExecute(Arg <IRegnskabViewModel> .Is.TypeOf)) .Return(false) .Repeat.Any(); Func <IEnumerable <IKontoModel> > kontoplanGetter = () => new List <IKontoModel>(0); var finansstyringRepositoryMock = MockRepository.GenerateMock <IFinansstyringRepository>(); finansstyringRepositoryMock.Expect(m => m.KontoplanGetAsync(Arg <int> .Is.GreaterThan(0), Arg <DateTime> .Is.GreaterThan(DateTime.MinValue))) .Return(Task.Run(kontoplanGetter)) .Repeat.Any(); var exceptionHandlerMock = MockRepository.GenerateMock <IExceptionHandlerViewModel>(); var regnskabsnummer = fixture.Create <int>(); var statusDato = fixture.Create <DateTime>(); var regnskabViewModelMock = MockRepository.GenerateMock <IRegnskabViewModel>(); regnskabViewModelMock.Expect(m => m.Nummer) .Return(regnskabsnummer) .Repeat.Any(); regnskabViewModelMock.Expect(m => m.StatusDato) .Return(statusDato) .Repeat.Any(); regnskabViewModelMock.Expect(m => m.Konti) .Return(new List <IKontoViewModel>(0)) .Repeat.Any(); regnskabViewModelMock.Expect(m => m.Kontogrupper) .Return(new List <IKontogruppeViewModel>(0)) .Repeat.Any(); var command = new KontoplanGetCommand(dependencyCommandMock, finansstyringRepositoryMock, exceptionHandlerMock); Assert.That(command, Is.Not.Null); Assert.That(command.ExecuteTask, Is.Null); var mock = regnskabViewModelMock; Action action = () => { command.Execute(mock); Assert.That(command.ExecuteTask, Is.Not.Null); command.ExecuteTask.Wait(); }; Task.Run(action).Wait(3000); dependencyCommandMock.AssertWasCalled(m => m.CanExecute(Arg <IRegnskabViewModel> .Is.Equal(regnskabViewModelMock))); dependencyCommandMock.AssertWasNotCalled(m => m.Execute(Arg <object> .Is.Anything)); dependencyCommandMock.AssertWasNotCalled(m => m.ExecuteTask); finansstyringRepositoryMock.AssertWasCalled(m => m.KontoplanGetAsync(Arg <int> .Is.Equal(regnskabsnummer), Arg <DateTime> .Is.Equal(statusDato))); exceptionHandlerMock.AssertWasNotCalled(m => m.HandleException(Arg <Exception> .Is.Anything)); }
public void TestAtConstructorInitiererKontoplanGetCommand() { var fixture = new Fixture(); fixture.Customize <ITaskableCommand>(e => e.FromFactory(() => MockRepository.GenerateMock <ITaskableCommand>())); fixture.Customize <IFinansstyringRepository>(e => e.FromFactory(() => MockRepository.GenerateMock <IFinansstyringRepository>())); fixture.Customize <IExceptionHandlerViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IExceptionHandlerViewModel>())); var command = new KontoplanGetCommand(fixture.Create <ITaskableCommand>(), fixture.Create <IFinansstyringRepository>(), fixture.Create <IExceptionHandlerViewModel>()); Assert.That(command, Is.Not.Null); Assert.That(command.ExecuteTask, Is.Null); }
public void TestAtCanExecuteReturnererTrue() { var fixture = new Fixture(); fixture.Customize <IRegnskabViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IRegnskabViewModel>())); fixture.Customize <ITaskableCommand>(e => e.FromFactory(() => MockRepository.GenerateMock <ITaskableCommand>())); fixture.Customize <IFinansstyringRepository>(e => e.FromFactory(() => MockRepository.GenerateMock <IFinansstyringRepository>())); fixture.Customize <IExceptionHandlerViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IExceptionHandlerViewModel>())); var command = new KontoplanGetCommand(fixture.Create <ITaskableCommand>(), fixture.Create <IFinansstyringRepository>(), fixture.Create <IExceptionHandlerViewModel>()); Assert.That(command, Is.Not.Null); var result = command.CanExecute(fixture.Create <IRegnskabViewModel>()); Assert.That(result, Is.True); }
public void TestAtExecuteExecutesRefreshCommandOnKontiSomIkkeErHentet() { var fixture = new Fixture(); fixture.Customize <DateTime>(e => e.FromFactory(() => DateTime.Now)); fixture.Customize <IKontogruppeViewModel>(e => e.FromFactory(() => { var kontogruppeViewModelMock = MockRepository.GenerateMock <IKontogruppeViewModel>(); kontogruppeViewModelMock.Expect(m => m.Nummer) .Return(fixture.Create <int>()) .Repeat.Any(); return(kontogruppeViewModelMock); })); var dependencyCommandMock = MockRepository.GenerateMock <ITaskableCommand>(); dependencyCommandMock.Expect(m => m.CanExecute(Arg <IRegnskabViewModel> .Is.TypeOf)) .Return(false) .Repeat.Any(); var kontogruppeViewModelMockCollection = fixture.CreateMany <IKontogruppeViewModel>(7).ToList(); var kontoModelMockCollection = GetKontoModels(fixture, kontogruppeViewModelMockCollection, new Random(DateTime.Now.Second), 1).ToArray(); Func <IEnumerable <IKontoModel> > kontoplanGetter = () => kontoModelMockCollection; var finansstyringRepositoryMock = MockRepository.GenerateMock <IFinansstyringRepository>(); finansstyringRepositoryMock.Expect(m => m.KontoplanGetAsync(Arg <int> .Is.GreaterThan(0), Arg <DateTime> .Is.GreaterThan(DateTime.MinValue))) .Return(Task.Run(kontoplanGetter)) .Repeat.Any(); var exceptionHandlerMock = MockRepository.GenerateMock <IExceptionHandlerViewModel>(); var refreshCommandMock = MockRepository.GenerateMock <ICommand>(); refreshCommandMock.Expect(m => m.CanExecute(Arg <object> .Is.NotNull)) .Return(true) .Repeat.Any(); var kontoViewModelMock = MockRepository.GenerateMock <IKontoViewModel>(); kontoViewModelMock.Expect(m => m.Kontonummer) .Return(kontoModelMockCollection.ElementAt(0).Kontonummer) .Repeat.Any(); var unreadedKontoViewModelMock = MockRepository.GenerateMock <IKontoViewModel>(); unreadedKontoViewModelMock.Expect(m => m.Kontonummer) .Return(fixture.Create <string>()) .Repeat.Any(); unreadedKontoViewModelMock.Expect(m => m.RefreshCommand) .Return(refreshCommandMock) .Repeat.Any(); var regnskabsnummer = fixture.Create <int>(); var statusDato = fixture.Create <DateTime>(); var regnskabViewModelMock = MockRepository.GenerateMock <IRegnskabViewModel>(); regnskabViewModelMock.Expect(m => m.Nummer) .Return(regnskabsnummer) .Repeat.Any(); regnskabViewModelMock.Expect(m => m.StatusDato) .Return(statusDato) .Repeat.Any(); regnskabViewModelMock.Expect(m => m.Konti) .Return(new List <IKontoViewModel> { kontoViewModelMock, unreadedKontoViewModelMock }) .Repeat.Any(); regnskabViewModelMock.Expect(m => m.Kontogrupper) .Return(kontogruppeViewModelMockCollection) .Repeat.Any(); var command = new KontoplanGetCommand(dependencyCommandMock, finansstyringRepositoryMock, exceptionHandlerMock); Assert.That(command, Is.Not.Null); Assert.That(command.ExecuteTask, Is.Null); var mock = regnskabViewModelMock; Action action = () => { command.Execute(mock); Assert.That(command.ExecuteTask, Is.Not.Null); command.ExecuteTask.Wait(); }; Task.Run(action).Wait(3000); dependencyCommandMock.AssertWasCalled(m => m.CanExecute(Arg <IRegnskabViewModel> .Is.Equal(regnskabViewModelMock))); dependencyCommandMock.AssertWasNotCalled(m => m.Execute(Arg <object> .Is.Anything)); dependencyCommandMock.AssertWasNotCalled(m => m.ExecuteTask); finansstyringRepositoryMock.AssertWasCalled(m => m.KontoplanGetAsync(Arg <int> .Is.Equal(regnskabsnummer), Arg <DateTime> .Is.Equal(statusDato))); regnskabViewModelMock.AssertWasCalled(m => m.Kontogrupper); regnskabViewModelMock.AssertWasCalled(m => m.Konti, opt => opt.Repeat.Times(kontoModelMockCollection.Count() + 1)); regnskabViewModelMock.AssertWasNotCalled(m => m.KontoAdd(Arg <IKontoViewModel> .Is.Anything)); unreadedKontoViewModelMock.AssertWasCalled(m => m.RefreshCommand); refreshCommandMock.AssertWasCalled(m => m.CanExecute(Arg <object> .Is.Equal(unreadedKontoViewModelMock))); refreshCommandMock.AssertWasCalled(m => m.Execute(Arg <object> .Is.Equal(unreadedKontoViewModelMock))); exceptionHandlerMock.AssertWasNotCalled(m => m.HandleException(Arg <Exception> .Is.Anything)); }