public void TestAtPropertyChangedOnAdressekontoModelEventHandlerRejserPropertyChangedOnAdressekontoModelUpdate(string propertyNameToRaise, string expectPropertyName) { var fixture = new Fixture(); fixture.Customize <Byte[]>(e => e.FromFactory(() => TestHelper.GetEmbeddedResource((new Resource()).GetType().Assembly, "Images.Adressekonto.png"))); fixture.Customize <IRegnskabViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IRegnskabViewModel>())); fixture.Customize <IFinansstyringRepository>(e => e.FromFactory(() => MockRepository.GenerateMock <IFinansstyringRepository>())); fixture.Customize <IExceptionHandlerViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IExceptionHandlerViewModel>())); var adressekontoModelMock = MockRepository.GenerateMock <IAdressekontoModel>(); var adressekontoViewModel = new AdressekontoViewModel(fixture.Create <IRegnskabViewModel>(), adressekontoModelMock, fixture.Create <string>(), fixture.Create <byte[]>(), fixture.Create <IFinansstyringRepository>(), fixture.Create <IExceptionHandlerViewModel>()); Assert.That(adressekontoViewModel, Is.Not.Null); var eventCalled = false; adressekontoViewModel.PropertyChanged += (s, e) => { Assert.That(s, Is.Not.Null); Assert.That(e, Is.Not.Null); Assert.That(e.PropertyName, Is.Not.Null); Assert.That(e.PropertyName, Is.Not.Empty); if (string.Compare(e.PropertyName, expectPropertyName, StringComparison.Ordinal) == 0) { eventCalled = true; } }; Assert.That(eventCalled, Is.False); adressekontoModelMock.Raise(m => m.PropertyChanged += null, adressekontoModelMock, new PropertyChangedEventArgs(propertyNameToRaise)); Assert.That(eventCalled, Is.True); }
public void TestAtSaldoSetterKalderHandleExceptionOnExceptionHandlerViewModelVedExceptions() { var fixture = new Fixture(); fixture.Customize <Byte[]>(e => e.FromFactory(() => TestHelper.GetEmbeddedResource((new Resource()).GetType().Assembly, "Images.Adressekonto.png"))); fixture.Customize <IRegnskabViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IRegnskabViewModel>())); fixture.Customize <IFinansstyringRepository>(e => e.FromFactory(() => MockRepository.GenerateMock <IFinansstyringRepository>())); var exception = fixture.Create <Exception>(); var adressekontoModelMock = MockRepository.GenerateMock <IAdressekontoModel>(); adressekontoModelMock.Expect(m => m.Saldo = Arg <decimal> .Is.Anything) .Throw(exception) .Repeat.Any(); var exceptionHandlerViewModelMock = MockRepository.GenerateMock <IExceptionHandlerViewModel>(); var adressekontoViewModel = new AdressekontoViewModel(fixture.Create <IRegnskabViewModel>(), adressekontoModelMock, fixture.Create <string>(), fixture.Create <byte[]>(), fixture.Create <IFinansstyringRepository>(), exceptionHandlerViewModelMock); Assert.That(adressekontoViewModel, Is.Not.Null); var newValue = fixture.Create <decimal>(); adressekontoViewModel.Saldo = newValue; adressekontoModelMock.AssertWasCalled(m => m.Saldo = Arg <decimal> .Is.Equal(newValue)); exceptionHandlerViewModelMock.AssertWasCalled(m => m.HandleException(Arg <Exception> .Is.Equal(exception))); }
/// <summary> /// Opdaterer ViewModel for regnskabet med kreditorer. /// </summary> /// <param name="regnskabViewModel">ViewModel for regnskabet, der skal opdateres.</param> /// <param name="adressekontoModels">Kreditorer, som regnskabet skal opdateres med.</param> /// <param name="dageForNyheder">Antallet af dage, som nyheder er gældende.</param> private void HandleResult(IRegnskabViewModel regnskabViewModel, IEnumerable <IAdressekontoModel> adressekontoModels, int dageForNyheder) { if (regnskabViewModel == null) { throw new ArgumentNullException("regnskabViewModel"); } if (adressekontoModels == null) { throw new ArgumentNullException("adressekontoModels"); } var adressekontoViewModelCollection = new List <IAdressekontoViewModel>(regnskabViewModel.Kreditorer); foreach (var adressekontoModel in adressekontoModels.OrderBy(m => m.Nummer)) { try { var adressekontoViewModel = regnskabViewModel.Kreditorer.FirstOrDefault(m => m.Nummer == adressekontoModel.Nummer); if (adressekontoViewModel == null) { adressekontoViewModel = new AdressekontoViewModel(regnskabViewModel, adressekontoModel, Resource.GetText(Text.Creditor), Resource.GetEmbeddedResource("Images.Adressekonto.png"), _finansstyringRepository, ExceptionHandler); regnskabViewModel.KreditorAdd(adressekontoViewModel); if (adressekontoModel.StatusDato.Date.CompareTo(regnskabViewModel.StatusDato.Date.AddDays(dageForNyheder * -1)) >= 0 && adressekontoModel.StatusDato.Date.CompareTo(regnskabViewModel.StatusDato.Date) <= 0) { adressekontoModel.SetNyhedsaktualitet(Nyhedsaktualitet.High); regnskabViewModel.NyhedAdd(new NyhedViewModel(adressekontoModel, adressekontoViewModel.Image)); } continue; } adressekontoViewModel.Navn = adressekontoModel.Navn; adressekontoViewModel.PrimærTelefon = adressekontoModel.PrimærTelefon; adressekontoViewModel.SekundærTelefon = adressekontoModel.SekundærTelefon; adressekontoViewModel.StatusDato = adressekontoModel.StatusDato; adressekontoViewModel.Saldo = adressekontoModel.Saldo; } finally { var adressekontoViewModel = adressekontoViewModelCollection.FirstOrDefault(m => m.Nummer == adressekontoModel.Nummer); while (adressekontoViewModel != null) { adressekontoViewModelCollection.Remove(adressekontoViewModel); adressekontoViewModel = adressekontoViewModelCollection.FirstOrDefault(m => m.Nummer == adressekontoModel.Nummer); } } } foreach (var adressekontoViewModel in adressekontoViewModelCollection) { var refreshCommand = adressekontoViewModel.RefreshCommand; if (refreshCommand.CanExecute(adressekontoViewModel)) { refreshCommand.Execute(adressekontoViewModel); } } }
public void TestAtPropertyChangedOnAdressekontoModelEventHandlerKasterArgumentNullExceptionHvisEventArgsErNull() { var fixture = new Fixture(); fixture.Customize <Byte[]>(e => e.FromFactory(() => TestHelper.GetEmbeddedResource((new Resource()).GetType().Assembly, "Images.Adressekonto.png"))); fixture.Customize <IRegnskabViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IRegnskabViewModel>())); fixture.Customize <IFinansstyringRepository>(e => e.FromFactory(() => MockRepository.GenerateMock <IFinansstyringRepository>())); fixture.Customize <IExceptionHandlerViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IExceptionHandlerViewModel>())); var adressekontoModelMock = MockRepository.GenerateMock <IAdressekontoModel>(); var adressekontoViewModel = new AdressekontoViewModel(fixture.Create <IRegnskabViewModel>(), adressekontoModelMock, fixture.Create <string>(), fixture.Create <byte[]>(), fixture.Create <IFinansstyringRepository>(), fixture.Create <IExceptionHandlerViewModel>()); Assert.That(adressekontoViewModel, Is.Not.Null); var exception = Assert.Throws <ArgumentNullException>(() => adressekontoModelMock.Raise(m => m.PropertyChanged += null, fixture.Create <object>(), null)); Assert.That(exception, Is.Not.Null); Assert.That(exception.ParamName, Is.Not.Null); Assert.That(exception.ParamName, Is.Not.Empty); Assert.That(exception.ParamName, Is.EqualTo("eventArgs")); Assert.That(exception.InnerException, Is.Null); }
public void TestAtSekundærTelefonSetterOpdatererSekundærTelefonOnAdressekontoModel() { var fixture = new Fixture(); fixture.Customize <Byte[]>(e => e.FromFactory(() => TestHelper.GetEmbeddedResource((new Resource()).GetType().Assembly, "Images.Adressekonto.png"))); fixture.Customize <IRegnskabViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IRegnskabViewModel>())); fixture.Customize <IFinansstyringRepository>(e => e.FromFactory(() => MockRepository.GenerateMock <IFinansstyringRepository>())); var adressekontoModelMock = MockRepository.GenerateMock <IAdressekontoModel>(); var exceptionHandlerViewModelMock = MockRepository.GenerateMock <IExceptionHandlerViewModel>(); var adressekontoViewModel = new AdressekontoViewModel(fixture.Create <IRegnskabViewModel>(), adressekontoModelMock, fixture.Create <string>(), fixture.Create <byte[]>(), fixture.Create <IFinansstyringRepository>(), exceptionHandlerViewModelMock); Assert.That(adressekontoViewModel, Is.Not.Null); var newValue = fixture.Create <string>(); adressekontoViewModel.SekundærTelefon = newValue; adressekontoModelMock.AssertWasCalled(m => m.SekundærTelefon = Arg <string> .Is.Equal(newValue)); exceptionHandlerViewModelMock.AssertWasNotCalled(m => m.HandleException(Arg <Exception> .Is.Anything)); }
public void TestAtConstructorInitiererAdressekontoViewModel() { var fixture = new Fixture(); fixture.Customize <DateTime>(e => e.FromFactory(() => DateTime.Now)); fixture.Customize <Byte[]>(e => e.FromFactory(() => TestHelper.GetEmbeddedResource((new Resource()).GetType().Assembly, "Images.Adressekonto.png"))); fixture.Customize <IRegnskabViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IRegnskabViewModel>())); fixture.Customize <IFinansstyringRepository>(e => e.FromFactory(() => MockRepository.GenerateMock <IFinansstyringRepository>())); fixture.Customize <IExceptionHandlerViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IExceptionHandlerViewModel>())); 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 regnskabViewModelMock = fixture.Create <IRegnskabViewModel>(); var adressekontoModelMock = fixture.Create <IAdressekontoModel>(); var displayName = fixture.Create <string>(); var image = fixture.Create <byte[]>(); var adressekontoViewModel = new AdressekontoViewModel(regnskabViewModelMock, adressekontoModelMock, displayName, image, fixture.Create <IFinansstyringRepository>(), fixture.Create <IExceptionHandlerViewModel>()); Assert.That(adressekontoViewModel, Is.Not.Null); Assert.That(adressekontoViewModel.Regnskab, Is.Not.Null); Assert.That(adressekontoViewModel.Regnskab, Is.EqualTo(regnskabViewModelMock)); Assert.That(adressekontoViewModel.Nummer, Is.EqualTo(adressekontoModelMock.Nummer)); Assert.That(adressekontoViewModel.Navn, Is.Not.Null); Assert.That(adressekontoViewModel.Navn, Is.Not.Empty); Assert.That(adressekontoViewModel.Navn, Is.EqualTo(adressekontoModelMock.Navn)); Assert.That(adressekontoViewModel.PrimærTelefon, Is.Not.Null); Assert.That(adressekontoViewModel.PrimærTelefon, Is.Not.Empty); Assert.That(adressekontoViewModel.PrimærTelefon, Is.EqualTo(adressekontoModelMock.PrimærTelefon)); Assert.That(adressekontoViewModel.PrimærTelefonLabel, Is.Not.Null); Assert.That(adressekontoViewModel.PrimærTelefonLabel, Is.Not.Empty); Assert.That(adressekontoViewModel.PrimærTelefonLabel, Is.EqualTo(Resource.GetText(Text.Phone))); Assert.That(adressekontoViewModel.SekundærTelefon, Is.Not.Null); Assert.That(adressekontoViewModel.SekundærTelefon, Is.Not.Empty); Assert.That(adressekontoViewModel.SekundærTelefon, Is.EqualTo(adressekontoModelMock.SekundærTelefon)); Assert.That(adressekontoViewModel.SekundærTelefonLabel, Is.Not.Null); Assert.That(adressekontoViewModel.SekundærTelefonLabel, Is.Not.Empty); Assert.That(adressekontoViewModel.SekundærTelefonLabel, Is.EqualTo(Resource.GetText(Text.Phone))); Assert.That(adressekontoViewModel.StatusDato, Is.EqualTo(adressekontoModelMock.StatusDato)); Assert.That(adressekontoViewModel.Saldo, Is.EqualTo(adressekontoModelMock.Saldo)); Assert.That(adressekontoViewModel.SaldoAsText, Is.Not.Null); Assert.That(adressekontoViewModel.SaldoAsText, Is.Not.Empty); Assert.That(adressekontoViewModel.SaldoAsText, Is.EqualTo(adressekontoModelMock.Saldo.ToString("C"))); Assert.That(adressekontoViewModel.SaldoLabel, Is.Not.Null); Assert.That(adressekontoViewModel.SaldoLabel, Is.Not.Empty); Assert.That(adressekontoViewModel.SaldoLabel, Is.EqualTo(Resource.GetText(Text.Balance))); Assert.That(adressekontoViewModel.DisplayName, Is.Not.Null); Assert.That(adressekontoViewModel.DisplayName, Is.Not.Empty); Assert.That(adressekontoViewModel.DisplayName, Is.EqualTo(displayName)); Assert.That(adressekontoViewModel.Image, Is.Not.Null); Assert.That(adressekontoViewModel.Image, Is.Not.Empty); Assert.That(adressekontoViewModel.Image, Is.EqualTo(image)); Assert.That(adressekontoViewModel.RefreshCommand, Is.Not.Null); Assert.That(adressekontoViewModel.RefreshCommand, Is.TypeOf <AdressekontoGetCommand>()); adressekontoModelMock.AssertWasCalled(m => m.Nummer); adressekontoModelMock.AssertWasCalled(m => m.Navn); adressekontoModelMock.AssertWasCalled(m => m.PrimærTelefon); adressekontoModelMock.AssertWasCalled(m => m.SekundærTelefon); adressekontoModelMock.AssertWasCalled(m => m.StatusDato); adressekontoModelMock.AssertWasCalled(m => m.Saldo); }