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");
        }
Ejemplo n.º 2
0
        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;
 }
Ejemplo n.º 8
0
 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.");
        }
Ejemplo n.º 11
0
        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.");
        }