public void TestAtConstructorInitiererDebitorlisteGetCommand() { var fixture = new Fixture(); fixture.Customize <IFinansstyringRepository>(e => e.FromFactory(() => MockRepository.GenerateMock <IFinansstyringRepository>())); fixture.Customize <IExceptionHandlerViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IExceptionHandlerViewModel>())); var command = new DebitorlisteGetCommand(fixture.Create <IFinansstyringRepository>(), fixture.Create <IExceptionHandlerViewModel>()); Assert.That(command, Is.Not.Null); Assert.That(command.ExecuteTask, Is.Null); }
public void TestAtExecuteKalderExceptionHandlerViewModelMedIntranetGuiRepositoryExceptionVedIntranetGuiRepositoryException() { var fixture = new Fixture(); fixture.Customize <DateTime>(e => e.FromFactory(() => DateTime.Now)); var finansstyringKonfigurationRepositoryMock = MockRepository.GenerateMock <IFinansstyringKonfigurationRepository>(); Func <IEnumerable <IAdressekontoModel> > getter = () => { throw new IntranetGuiRepositoryException(fixture.Create <string>()); }; var finansstyringRepositoryMock = MockRepository.GenerateMock <IFinansstyringRepository>(); finansstyringRepositoryMock.Expect(m => m.Konfiguration) .Return(finansstyringKonfigurationRepositoryMock) .Repeat.Any(); finansstyringRepositoryMock.Expect(m => m.DebitorlisteGetAsync(Arg <int> .Is.GreaterThan(0), Arg <DateTime> .Is.GreaterThan(DateTime.MinValue))) .Return(Task.Run(getter)) .Repeat.Any(); var exceptionHandlerViewModelMock = MockRepository.GenerateMock <IExceptionHandlerViewModel>(); var regnskabViewModelMock = MockRepository.GenerateMock <IRegnskabViewModel>(); regnskabViewModelMock.Expect(m => m.Nummer) .Return(fixture.Create <int>()) .Repeat.Any(); regnskabViewModelMock.Expect(m => m.StatusDato) .Return(fixture.Create <DateTime>()) .Repeat.Any(); var command = new DebitorlisteGetCommand(finansstyringRepositoryMock, exceptionHandlerViewModelMock); Assert.That(command, Is.Not.Null); Assert.That(command.ExecuteTask, Is.Null); Action action = () => { command.Execute(regnskabViewModelMock); Assert.That(command.ExecuteTask, Is.Not.Null); command.ExecuteTask.Wait(); }; Task.Run(action).Wait(3000); finansstyringRepositoryMock.AssertWasCalled(m => m.Konfiguration); // ReSharper disable ImplicitlyCapturedClosure finansstyringRepositoryMock.AssertWasCalled(m => m.DebitorlisteGetAsync(Arg <int> .Is.Equal(regnskabViewModelMock.Nummer), Arg <DateTime> .Is.Equal(regnskabViewModelMock.StatusDato))); // ReSharper restore ImplicitlyCapturedClosure exceptionHandlerViewModelMock.AssertWasCalled(m => m.HandleException(Arg <IntranetGuiRepositoryException> .Is.TypeOf)); }
public void TestAtCanExecuteReturnererTrue() { var fixture = new Fixture(); fixture.Customize <IFinansstyringRepository>(e => e.FromFactory(() => MockRepository.GenerateMock <IFinansstyringRepository>())); fixture.Customize <IExceptionHandlerViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IExceptionHandlerViewModel>())); fixture.Customize <IRegnskabViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IRegnskabViewModel>())); var command = new DebitorlisteGetCommand(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 TestAtExecuteExecutesRefreshCommandOnDebitorerSomIkkeErHentet() { var fixture = new Fixture(); fixture.Customize <DateTime>(e => e.FromFactory(() => DateTime.Now)); fixture.Customize <IAdressekontoModel>(e => e.FromFactory(() => { var mock = MockRepository.GenerateMock <IAdressekontoModel>(); mock.Expect(m => m.Nummer) .Return(fixture.Create <int>()) .Repeat.Any(); mock.Expect(m => m.Navn) .Return(fixture.Create <string>()) .Repeat.Any(); mock.Expect(m => m.PrimærTelefon) .Return(fixture.Create <string>()) .Repeat.Any(); mock.Expect(m => m.SekundærTelefon) .Return(fixture.Create <string>()) .Repeat.Any(); mock.Expect(m => m.StatusDato) .Return(fixture.Create <DateTime>()) .Repeat.Any(); mock.Expect(m => m.Saldo) .Return(fixture.Create <decimal>()) .Repeat.Any(); return(mock); })); var finansstyringKonfigurationRepositoryMock = MockRepository.GenerateMock <IFinansstyringKonfigurationRepository>(); finansstyringKonfigurationRepositoryMock.Expect(m => m.DageForNyheder) .Return(7) .Repeat.Any(); var adressekontoModelCollection = fixture.CreateMany <IAdressekontoModel>(1).ToList(); Func <IEnumerable <IAdressekontoModel> > getter = () => adressekontoModelCollection; var finansstyringRepositoryMock = MockRepository.GenerateMock <IFinansstyringRepository>(); finansstyringRepositoryMock.Expect(m => m.Konfiguration) .Return(finansstyringKonfigurationRepositoryMock) .Repeat.Any(); finansstyringRepositoryMock.Expect(m => m.DebitorlisteGetAsync(Arg <int> .Is.GreaterThan(0), Arg <DateTime> .Is.GreaterThan(DateTime.MinValue))) .Return(Task.Run(getter)) .Repeat.Any(); var exceptionHandlerViewModelMock = MockRepository.GenerateMock <IExceptionHandlerViewModel>(); var refreshCommandMock = MockRepository.GenerateMock <ICommand>(); refreshCommandMock.Expect(m => m.CanExecute(Arg <object> .Is.NotNull)) .Return(true) .Repeat.Any(); var adressekontoViewModelMock = MockRepository.GenerateMock <IAdressekontoViewModel>(); adressekontoViewModelMock.Expect(m => m.Nummer) .Return(adressekontoModelCollection.ElementAt(0).Nummer) .Repeat.Any(); var unreadedAdressekontoViewModelMock = MockRepository.GenerateMock <IAdressekontoViewModel>(); unreadedAdressekontoViewModelMock.Expect(m => m.Nummer) .Return(fixture.Create <int>()) .Repeat.Any(); unreadedAdressekontoViewModelMock.Expect(m => m.RefreshCommand) .Return(refreshCommandMock) .Repeat.Any(); var regnskabViewModelMock = MockRepository.GenerateMock <IRegnskabViewModel>(); regnskabViewModelMock.Expect(m => m.Nummer) .Return(fixture.Create <int>()) .Repeat.Any(); regnskabViewModelMock.Expect(m => m.StatusDato) .Return(fixture.Create <DateTime>()) .Repeat.Any(); regnskabViewModelMock.Expect(m => m.Debitorer) .Return(new List <IAdressekontoViewModel> { adressekontoViewModelMock, unreadedAdressekontoViewModelMock }) .Repeat.Any(); var command = new DebitorlisteGetCommand(finansstyringRepositoryMock, exceptionHandlerViewModelMock); Assert.That(command, Is.Not.Null); Assert.That(command.ExecuteTask, Is.Null); Action action = () => { command.Execute(regnskabViewModelMock); Assert.That(command.ExecuteTask, Is.Not.Null); command.ExecuteTask.Wait(); }; Task.Run(action).Wait(3000); finansstyringRepositoryMock.AssertWasCalled(m => m.Konfiguration); // ReSharper disable ImplicitlyCapturedClosure finansstyringRepositoryMock.AssertWasCalled(m => m.DebitorlisteGetAsync(Arg <int> .Is.Equal(regnskabViewModelMock.Nummer), Arg <DateTime> .Is.Equal(regnskabViewModelMock.StatusDato))); // ReSharper restore ImplicitlyCapturedClosure finansstyringKonfigurationRepositoryMock.AssertWasCalled(m => m.DageForNyheder); regnskabViewModelMock.AssertWasCalled(m => m.Debitorer); regnskabViewModelMock.AssertWasNotCalled(m => m.DebitorAdd(Arg <IAdressekontoViewModel> .Is.Anything)); unreadedAdressekontoViewModelMock.AssertWasCalled(m => m.RefreshCommand); refreshCommandMock.AssertWasCalled(m => m.CanExecute(Arg <object> .Is.Equal(unreadedAdressekontoViewModelMock))); refreshCommandMock.AssertWasCalled(m => m.Execute(Arg <object> .Is.Equal(unreadedAdressekontoViewModelMock))); exceptionHandlerViewModelMock.AssertWasNotCalled(m => m.HandleException(Arg <Exception> .Is.Anything)); }
public void TestAtExecuteAddsNyeDebitorerSomNyhederTilRegnskabViewModel() { var rand = new Random(DateTime.Now.Millisecond); var fixture = new Fixture(); fixture.Customize <DateTime>(e => e.FromFactory(() => DateTime.Now)); fixture.Customize <IAdressekontoModel>(e => e.FromFactory(() => { var mock = MockRepository.GenerateMock <IAdressekontoModel>(); mock.Expect(m => m.Nummer) .Return(fixture.Create <int>()) .Repeat.Any(); mock.Expect(m => m.StatusDato) .Return(fixture.Create <DateTime>().AddDays(rand.Next(0, 10) * -1)) .Repeat.Any(); return(mock); })); var finansstyringKonfigurationRepositoryMock = MockRepository.GenerateMock <IFinansstyringKonfigurationRepository>(); finansstyringKonfigurationRepositoryMock.Expect(m => m.DageForNyheder) .Return(7) .Repeat.Any(); var adressekontoModelCollection = fixture.CreateMany <IAdressekontoModel>(250).ToList(); Func <IEnumerable <IAdressekontoModel> > getter = () => adressekontoModelCollection; var finansstyringRepositoryMock = MockRepository.GenerateMock <IFinansstyringRepository>(); finansstyringRepositoryMock.Expect(m => m.Konfiguration) .Return(finansstyringKonfigurationRepositoryMock) .Repeat.Any(); finansstyringRepositoryMock.Expect(m => m.DebitorlisteGetAsync(Arg <int> .Is.GreaterThan(0), Arg <DateTime> .Is.GreaterThan(DateTime.MinValue))) .Return(Task.Run(getter)) .Repeat.Any(); var exceptionHandlerViewModelMock = MockRepository.GenerateMock <IExceptionHandlerViewModel>(); var regnskabViewModelMock = MockRepository.GenerateMock <IRegnskabViewModel>(); regnskabViewModelMock.Expect(m => m.Nummer) .Return(fixture.Create <int>()) .Repeat.Any(); regnskabViewModelMock.Expect(m => m.StatusDato) .Return(fixture.Create <DateTime>()) .Repeat.Any(); regnskabViewModelMock.Expect(m => m.Debitorer) .Return(new List <IAdressekontoViewModel>(0)) .Repeat.Any(); var command = new DebitorlisteGetCommand(finansstyringRepositoryMock, exceptionHandlerViewModelMock); Assert.That(command, Is.Not.Null); Assert.That(command.ExecuteTask, Is.Null); Action action = () => { command.Execute(regnskabViewModelMock); Assert.That(command.ExecuteTask, Is.Not.Null); command.ExecuteTask.Wait(); }; Task.Run(action).Wait(3000); finansstyringRepositoryMock.AssertWasCalled(m => m.Konfiguration); // ReSharper disable ImplicitlyCapturedClosure finansstyringRepositoryMock.AssertWasCalled(m => m.DebitorlisteGetAsync(Arg <int> .Is.Equal(regnskabViewModelMock.Nummer), Arg <DateTime> .Is.Equal(regnskabViewModelMock.StatusDato))); // ReSharper restore ImplicitlyCapturedClosure finansstyringKonfigurationRepositoryMock.AssertWasCalled(m => m.DageForNyheder); regnskabViewModelMock.AssertWasCalled(m => m.Debitorer); regnskabViewModelMock.AssertWasCalled(m => m.DebitorAdd(Arg <IAdressekontoViewModel> .Is.NotNull), opt => opt.Repeat.Times(adressekontoModelCollection.Count)); var dageForNyheder = finansstyringKonfigurationRepositoryMock.DageForNyheder; var adressekontoTilNyhedCollection = adressekontoModelCollection.Where(m => m.StatusDato.Date.CompareTo(regnskabViewModelMock.StatusDato.Date.AddDays(dageForNyheder * -1)) >= 0 && m.StatusDato.Date.CompareTo(regnskabViewModelMock.StatusDato.Date) <= 0).ToList(); adressekontoTilNyhedCollection.ForEach(m => m.AssertWasCalled(n => n.SetNyhedsaktualitet(Nyhedsaktualitet.Low))); regnskabViewModelMock.AssertWasCalled(m => m.NyhedAdd(Arg <INyhedViewModel> .Is.NotNull), opt => opt.Repeat.Times(adressekontoTilNyhedCollection.Count)); exceptionHandlerViewModelMock.AssertWasNotCalled(m => m.HandleException(Arg <Exception> .Is.Anything)); }