public void AddAdvertisement_WithValidAd_AddsCurrentNewspaperItemToNewspapersCollectionInTheAddedAd() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var detailViewModel = new NewspaperDetailViewModel(repository); var collectionViewModel = new NewspaperCollectionViewModel(repository); var paperModel1 = new Newspaper() {Name = "New paper 1"}; var paperItemViewModel1 = new NewspaperItemViewModel(repository) {Model = paperModel1}; var adModel = new Advertisement() {Name = "Ad 1 Name", Text = "Ad 1 text."}; var adItemViewModel = new AdvertisementItemViewModel(repository) {Model = adModel}; collectionViewModel.Newspapers.Add(paperItemViewModel1); collectionViewModel.CurrentItem.Should().Be(paperItemViewModel1, "The current item is the item that was added."); detailViewModel.ItemViewModel.Should().Be(collectionViewModel.CurrentItem, "The detail view model references the collection's current item."); paperItemViewModel1.Advertisements.Count.Should().Be(0, "No newspapers are referenced in the advertisement."); adItemViewModel.Newspapers.Count.Should().Be(0, "There are no papers in this ad's collection."); // Act paperItemViewModel1.Advertisements.Add(adItemViewModel); // Assert paperItemViewModel1.Advertisements.Count.Should().Be(1, "One item was added"); adItemViewModel.Newspapers.Count.Should().Be(1, "One newspaper reference was added to this advertisement."); adItemViewModel.Newspapers.ToList().First().Should().Be(collectionViewModel.CurrentItem, "The paper added to the advertisment's newspaper collection was the Newspaper collection's CurrentItem"); }
public ActionResult Details(int id) { var advertisement = _sqlDbService.GetAllAdvertisementsWithDetailsById(id); var viewModel = new AdvertisementItemViewModel(); viewModel.AdvertisementCurrent = advertisement; viewModel.User = advertisement.User; //foreach (var feature in advertisement.Car.Features) //{ // viewModel.Features.Add(feature); //} var picturesModel = advertisement.Photos.Select(x => new PictureModel() { ID = x.Id, Url = string.Format("data:{0};base64,{1}", x.Extension, Convert.ToBase64String(x.Content)), AdvertisementId = advertisement.Id }).ToList(); viewModel.Pictures = picturesModel; viewModel.UrlPicture = picturesModel.FirstOrDefault().Url; if (User.Identity.IsAuthenticated) { viewModel.UserId = User.Identity.GetUserId(); viewModel.IsFollowing = _sqlDbService.IsFollowingExists(viewModel.UserId, advertisement.UserId); } return(View(viewModel)); }
public void Name_SetWhenModelNotPresent_ThrowsMissingModelException() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var vm = new AdvertisementItemViewModel(repository); vm.Model.Should().BeNull("Because vm.Model not set during object instantiation."); // Act var action = new Action(() => { vm.Name = "Name"; }); // Assert action.ShouldThrow<MissingModelException>("Cannot set any properties if Model not present."); }
public void AddAdvertisement_WithValidAdvertisement_AddsNewspaperToAdvertisementNewspaperssCollection() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var paperModel = new Newspaper(); var adModel = new Advertisement(); var adItemViewModel = new AdvertisementItemViewModel(repository) {Model = adModel}; var adDetailViewModel = new AdvertisementDetailViewModel(repository) {ItemViewModel = adItemViewModel}; var detailViewModel = new NewspaperDetailViewModel(repository) {ItemViewModel = new NewspaperItemViewModel(repository) {Model = paperModel}}; // Act detailViewModel.Advertisements.Add(adItemViewModel); // Assert detailViewModel.Advertisements.ToList().First().Newspapers.Contains(detailViewModel.ItemViewModel); }
public void AddAdvertisement_WithValidAdvertisement_AddsAdvertisementToAdvertisementsCollection() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var paperModel = new Newspaper(); var adModel = new Advertisement(); var adItemViewModel = new AdvertisementItemViewModel(repository) {Model = adModel}; var adDetailViewModel = new AdvertisementDetailViewModel(repository) {ItemViewModel = adItemViewModel}; var detailViewModel = new NewspaperDetailViewModel(repository) {ItemViewModel = new NewspaperItemViewModel(repository) {Model = paperModel}}; // Act detailViewModel.Advertisements.Add(adItemViewModel); // Assert detailViewModel.Advertisements.Count.Should().Be(1, "There should be one item in the collection"); }
public RemovingAdvertisementItemMessage(AdvertisementItemViewModel itemViewModel) { ItemViewModel = itemViewModel; }
public SaveAdvertisementItemMessage(AdvertisementItemViewModel itemViewModel) { ItemViewModel = itemViewModel; }
private AdvertisementItemViewModel GetValidAdvertisementItemViewModel(Advertisement ad = null, INewspaperAdRepository adRepository = null) { var model = ad ?? new Advertisement {Name = "<New Advertisement>", Text = "<New Advertisemnet body text."}; var repo = adRepository ?? Substitute.For<INewspaperAdRepository>(); var vm = new AdvertisementItemViewModel(repo) {Model = model}; return vm; }
public JsonResult EditItems(int id) { AdvertisementItemViewModel advertisement = AutoMapper.Mapper.Map <AdvertisementItemViewModel>(_advertisementItemService.GetAdvertisementItemById(id)); return(Json(advertisement, JsonRequestBehavior.AllowGet)); }
public void SelectedItemChangedHandler_WhenInvoked_SendsMessageAdvertisementChanged() { // Arrange var messageReceived = false; AdvertisementItemViewModel vm = null; var repository = GetNewspaperRepository(); var model1 = new Advertisement() {Name = "Ad 1", Text="Text 1"}; var model2 = new Advertisement {Name = "Ad 2", Text="Text 2"}; var adItemVm1 = new AdvertisementItemViewModel(repository) {Model = model1}; var adItemVm2 = new AdvertisementItemViewModel(repository) {Model = model2}; var collectionViewModel = new AdvertisementCollectionViewModel(repository); Messenger.Default.Register<CurrentAdvertisementItemChangedMessage>(this, (msg) => { messageReceived = true; vm = msg.ItemViewModel; }); var args = new RoutedPropertyChangedEventArgs<object>(null,adItemVm2); collectionViewModel.Advertisements.Add(adItemVm1); collectionViewModel.Advertisements.Add(adItemVm2); // Act collectionViewModel.SelectedItemChangedCommand.Execute(args); // Assert messageReceived.Should().Be(true, "The CurrentItemChangedMessage message was sent."); collectionViewModel.CurrentItem.Should().Be(adItemVm2, "The current item is the last one added."); vm.Model.Should().Be(adItemVm2.Model, "The added model was sent in the message."); }
public void RemoveAdvertisement_WithExistingAdvertisementInAdvertisementsCollection_RemovesNewspaperFromAdvertisementRemoved() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var paperModel = new Newspaper(); var adModel1 = new Advertisement(); var adItemViewModel1 = new AdvertisementItemViewModel(repository) {Model = adModel1}; var adModel2 = new Advertisement(); var adItemViewModel2 = new AdvertisementItemViewModel(repository) {Model = adModel2}; var adDetailViewModel = new AdvertisementDetailViewModel(repository) {ItemViewModel = adItemViewModel1}; var detailViewModel = new NewspaperDetailViewModel(repository) {ItemViewModel = new NewspaperItemViewModel(repository) {Model = paperModel}}; detailViewModel.Advertisements.Add(adItemViewModel1); detailViewModel.Advertisements.Add(adItemViewModel2); detailViewModel.Advertisements.Should().BeEquivalentTo(new List<AdvertisementItemViewModel> {adItemViewModel1, adItemViewModel2}); detailViewModel.Advertisements.ToList().All(a => a.Newspapers.Contains(detailViewModel.ItemViewModel)); // Act detailViewModel.Advertisements.Remove(adItemViewModel1); // Assert detailViewModel.Advertisements.Should().BeEquivalentTo(new List<AdvertisementItemViewModel> {adItemViewModel2}); }
public CurrentAdvertisementItemChangedMessage(AdvertisementItemViewModel itemViewModel) { ItemViewModel = itemViewModel; }
public void Name_WhenNullOrEmpty_SetsAllowSaveToFalse() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var model = new Advertisement(); var itemViewModel = new AdvertisementItemViewModel(repository) {Model = model}; var viewModel = new AdvertisementDetailViewModel(repository) {ItemViewModel = itemViewModel}; viewModel.AllowSave.Should().Be(true, "We have a valid name to reference."); // Act viewModel.Name = ""; // Assert viewModel.AllowSave.Should().Be(false, "Cannot save an Advertisement without a name."); }
public void Name_WhenNotNullOrEmpty_SetsAllowAddToTrue() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var model = new Advertisement(); var itemViewModel = new AdvertisementItemViewModel(repository) {Model = model}; // Act var viewModel = new AdvertisementDetailViewModel(repository) {ItemViewModel = itemViewModel}; // Assert viewModel.AllowSave.Should().Be(true, "We have a valid name to reference."); }