コード例 #1
0
ファイル: HomeController.cs プロジェクト: furkanozb/ArsaOfisi
        public async Task <IActionResult> AdvertisementDetail(int?id)
        {
            var model = new AdvertisementDetailViewModel()
            {
                Advertisement_items = await db.VIlanDetays.Where(w => w.Id == id).FirstOrDefaultAsync(),
                Photos = await db.Photos.Where(w => w.AdvertisementId == id).ToListAsync()
            };

            return(View(model));
        }
コード例 #2
0
        public void AddItemCommand_WhenInvoked_SendsMessageOfTypeAddingItemMessage()
        {
            var msgSent = false;
            var repository = Substitute.For<INewspaperAdRepository>();
            Messenger.Default.Register<AddingAdvertisementItemMessage>(this, (message) => { msgSent = true; });
            //	Act
            var viewModel = new AdvertisementDetailViewModel(repository);
            viewModel.AddItemCommand.Execute(null);

            //	Assert
            msgSent.Should().Be(true, "The message was sent.");
        }
コード例 #3
0
        public void AdvertisementDetailViewModel_WhenCreated_SendsDetailViewModelReadyMessage()
        {
            //	Arrange
            var msgSent = false;
            // AdvertisementDetailViewModelReady msg = null;
            var repository = Substitute.For<INewspaperAdRepository>();
            Messenger.Default.Register<AdvertisementDetailViewModelReady>(this, (message) => { msgSent = true; });

            //	Act
            var viewModel = new AdvertisementDetailViewModel(repository);

            //	Assert
            msgSent.Should().Be(true, "The message was sent.");
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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");
        }
コード例 #6
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});
        }
コード例 #7
0
        public void CancelCommand_WhenInvoked_ResetsNameToCollectionCurrentValue()
        {
            //	Arrange
            var repository = Substitute.For<INewspaperAdRepository>();
            repository.GetAllAdvertisements().Returns(new List<Advertisement>());
            var detailViewModel = new AdvertisementDetailViewModel(repository);
            var collectionViewModel = new AdvertisementCollectionViewModel(repository);
            detailViewModel.AddItemCommand.Execute(null);
            collectionViewModel.CurrentItem.Should().Be(detailViewModel.ItemViewModel,
                                                        "The detail model points to the Collection CurrentItem");
            var oldName = collectionViewModel.CurrentItem.Name;
            var newName = "Changed Advertisement Name";
            detailViewModel.Name = newName;
            collectionViewModel.CurrentItem.Name.Should().Be(oldName, "Name in the collection should not change");
            detailViewModel.Name.Should().Be(newName, "Alteration is reflected in the detail view model");

            //	Act
            detailViewModel.CancelItemCommand.Execute(null);

            //	Assert
            detailViewModel.Name.Should().Be(oldName, "The Advertisement name should revert back");
            collectionViewModel.CurrentItem.Should().Be(detailViewModel.ItemViewModel,
                                                        "The entire instance should have reverted back to the original value");
        }
コード例 #8
0
        public void SaveCommand_WhenInvoked_UpdatesCollectionCurrentItemWithNewValue()
        {
            //	Arrange
            var repository = Substitute.For<INewspaperAdRepository>();
            repository.GetAllAdvertisements().Returns(new List<Advertisement>());
            var detailViewModel = new AdvertisementDetailViewModel(repository);
            var collectionViewModel = new AdvertisementCollectionViewModel(repository);
            detailViewModel.AddItemCommand.Execute(null);
            collectionViewModel.CurrentItem.Should().Be(detailViewModel.ItemViewModel,
                                                        "The detail model points to the Collection CurrentItem");
            var oldName = collectionViewModel.CurrentItem.Name;
            var newName = "Changed Advertisement Name";
            detailViewModel.Name = newName;
            var paperCount = detailViewModel.Newspapers.Count;

            //	Act
            detailViewModel.SaveItemCommand.Execute(null);

            //	Assert
            collectionViewModel.CurrentItem.Should().Be(detailViewModel.ItemViewModel,
                                                        "The current item in the collection matches the one in the detail view model.");
            detailViewModel.Newspapers.ToList().ForEach(n => repository.Received().Save(n.Model));
        }
コード例 #9
0
        public void RemoveNewspaper_WithExistingNewspaperInNewspapersCollection_RemovesNewspaperFromNewspapersCollection()
        {
            //	Arrange
            var repository = Substitute.For<INewspaperAdRepository>();
            var advertisementModel = new Advertisement();
            var paperModel1 = new Newspaper();
            var newspaperItemViewModel1 = new NewspaperItemViewModel(repository) {Model = paperModel1};
            var paperModel2 = new Newspaper();
            var newspaperItemViewModel2 = new NewspaperItemViewModel(repository) {Model = paperModel2};
            var adDetailViewModel = new NewspaperDetailViewModel(repository) {ItemViewModel = newspaperItemViewModel1};
            var detailViewModel = new AdvertisementDetailViewModel(repository)
                                  {ItemViewModel = new AdvertisementItemViewModel(repository) {Model = advertisementModel}};
            detailViewModel.Newspapers.Add(newspaperItemViewModel1);
            detailViewModel.Newspapers.Add(newspaperItemViewModel2);
            detailViewModel.Newspapers.Should().BeEquivalentTo(new List<NewspaperItemViewModel>
                                                               {newspaperItemViewModel1, newspaperItemViewModel2});
            //	Act
            detailViewModel.Newspapers.Remove(newspaperItemViewModel1);

            //	Assert
            detailViewModel.Newspapers.Should().BeEquivalentTo(new List<NewspaperItemViewModel> {newspaperItemViewModel2});
        }
コード例 #10
0
        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.");
        }
コード例 #11
0
        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.");
        }