public void TestAtConstructorInitiererBogføringslinjerGetCommand() { 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 BogføringslinjerGetCommand(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 <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 BogføringslinjerGetCommand(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 TestAtExecuteAddsNyeBogføringslinjerTilRegnskabViewModel() { var rand = new Random(DateTime.Now.Millisecond); var fixture = new Fixture(); fixture.Customize <DateTime>(e => e.FromFactory(() => DateTime.Now)); fixture.Customize <IBogføringslinjeModel>(e => e.FromFactory(() => { var bogføringslinjeModelMock = MockRepository.GenerateMock <IBogføringslinjeModel>(); bogføringslinjeModelMock.Expect(m => m.Løbenummer) .Return(fixture.Create <int>()) .Repeat.Any(); bogføringslinjeModelMock.Expect(m => m.Dato) .Return(fixture.Create <DateTime>().AddDays(rand.Next(0, 30) * -1)) .Repeat.Any(); return(bogføringslinjeModelMock); })); var bogføringslinjeModelMockCollection = fixture.CreateMany <IBogføringslinjeModel>(100).ToList(); Func <IEnumerable <IBogføringslinjeModel> > getter = () => bogføringslinjeModelMockCollection; var finansstyringKonfigurationRepositoryMock = MockRepository.GenerateMock <IFinansstyringKonfigurationRepository>(); finansstyringKonfigurationRepositoryMock.Expect(m => m.AntalBogføringslinjer) .Return(bogføringslinjeModelMockCollection.Count) .Repeat.Any(); finansstyringKonfigurationRepositoryMock.Expect(m => m.DageForNyheder) .Return(7) .Repeat.Any(); var finansstyringRepositoryMock = MockRepository.GenerateMock <IFinansstyringRepository>(); finansstyringRepositoryMock.Expect(m => m.Konfiguration) .Return(finansstyringKonfigurationRepositoryMock) .Repeat.Any(); finansstyringRepositoryMock.Expect(m => m.BogføringslinjerGetAsync(Arg <int> .Is.GreaterThan(0), Arg <DateTime> .Is.Anything, Arg <int> .Is.GreaterThan(0))) .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.Bogføringslinjer) .Return(new ReadOnlyObservableCollection <IReadOnlyBogføringslinjeViewModel>(new ObservableCollection <IReadOnlyBogføringslinjeViewModel>(new List <IReadOnlyBogføringslinjeViewModel>(0)))) .Repeat.Any(); var command = new BogføringslinjerGetCommand(finansstyringRepositoryMock, exceptionHandlerViewModelMock); Assert.That(command, Is.Not.Null); Assert.That(command.ExecuteTask, Is.Null); // ReSharper disable ImplicitlyCapturedClosure Action action = () => { command.Execute(regnskabViewModelMock); Assert.That(command.ExecuteTask, Is.Not.Null); command.ExecuteTask.Wait(); }; // ReSharper restore ImplicitlyCapturedClosure Task.Run(action).Wait(3000); finansstyringRepositoryMock.AssertWasCalled(m => m.Konfiguration); finansstyringKonfigurationRepositoryMock.AssertWasCalled(m => m.AntalBogføringslinjer); // ReSharper disable ImplicitlyCapturedClosure finansstyringRepositoryMock.AssertWasCalled(m => m.BogføringslinjerGetAsync(Arg <int> .Is.Equal(regnskabViewModelMock.Nummer), Arg <DateTime> .Is.Equal(regnskabViewModelMock.StatusDato), Arg <int> .Is.Equal(finansstyringKonfigurationRepositoryMock.AntalBogføringslinjer))); // ReSharper restore ImplicitlyCapturedClosure finansstyringKonfigurationRepositoryMock.AssertWasCalled(m => m.DageForNyheder); regnskabViewModelMock.AssertWasCalled(m => m.Bogføringslinjer, opt => opt.Repeat.Times(bogføringslinjeModelMockCollection.Count)); regnskabViewModelMock.AssertWasCalled(m => m.BogføringslinjeAdd(Arg <IReadOnlyBogføringslinjeViewModel> .Is.NotNull), opt => opt.Repeat.Times(bogføringslinjeModelMockCollection.Count)); exceptionHandlerViewModelMock.AssertWasNotCalled(m => m.HandleException(Arg <Exception> .Is.Anything)); }
public void TestAtExecuteKalderExceptionHandlerViewModelMedIntranetGuiRepositoryExceptionVedIntranetGuiRepositoryException() { var fixture = new Fixture(); Func <IEnumerable <IBogføringslinjeModel> > getter = () => { var message = fixture.Create <string>(); throw new IntranetGuiRepositoryException(message); }; var finansstyringKonfigurationRepositoryMock = MockRepository.GenerateMock <IFinansstyringKonfigurationRepository>(); finansstyringKonfigurationRepositoryMock.Expect(m => m.AntalBogføringslinjer) .Return(fixture.Create <int>()) .Repeat.Any(); var finansstyringRepositoryMock = MockRepository.GenerateMock <IFinansstyringRepository>(); finansstyringRepositoryMock.Expect(m => m.Konfiguration) .Return(finansstyringKonfigurationRepositoryMock) .Repeat.Any(); finansstyringRepositoryMock.Expect(m => m.BogføringslinjerGetAsync(Arg <int> .Is.GreaterThan(0), Arg <DateTime> .Is.Anything, Arg <int> .Is.GreaterThan(0))) .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 BogføringslinjerGetCommand(finansstyringRepositoryMock, exceptionHandlerViewModelMock); Assert.That(command, Is.Not.Null); Assert.That(command.ExecuteTask, Is.Null); // ReSharper disable ImplicitlyCapturedClosure Action action = () => { command.Execute(regnskabViewModelMock); Assert.That(command.ExecuteTask, Is.Not.Null); command.ExecuteTask.Wait(); }; // ReSharper restore ImplicitlyCapturedClosure Task.Run(action).Wait(3000); finansstyringRepositoryMock.AssertWasCalled(m => m.Konfiguration); finansstyringKonfigurationRepositoryMock.AssertWasCalled(m => m.AntalBogføringslinjer); // ReSharper disable ImplicitlyCapturedClosure finansstyringRepositoryMock.AssertWasCalled(m => m.BogføringslinjerGetAsync(Arg <int> .Is.Equal(regnskabViewModelMock.Nummer), Arg <DateTime> .Is.Equal(regnskabViewModelMock.StatusDato), Arg <int> .Is.Equal(finansstyringKonfigurationRepositoryMock.AntalBogføringslinjer))); // ReSharper restore ImplicitlyCapturedClosure finansstyringKonfigurationRepositoryMock.AssertWasCalled(m => m.DageForNyheder); regnskabViewModelMock.AssertWasNotCalled(m => m.Bogføringslinjer); regnskabViewModelMock.AssertWasNotCalled(m => m.BogføringslinjeAdd(Arg <IReadOnlyBogføringslinjeViewModel> .Is.Anything)); regnskabViewModelMock.AssertWasNotCalled(m => m.NyhedAdd(Arg <INyhedViewModel> .Is.Anything)); exceptionHandlerViewModelMock.AssertWasCalled(m => m.HandleException(Arg <IntranetGuiRepositoryException> .Is.TypeOf)); }