Beispiel #1
0
        public void RedirectToCorrectLinck_WhenModelStateIsValid_AndThereIsNoExceptions()
        {
            // Arrange
            // This code mock User.Identity.GetUserId()
            var context  = new Mock <HttpContextBase>();
            var identity = new GenericIdentity("*****@*****.**");

            identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", "1"));
            var principal = new GenericPrincipal(identity, new[] { "user" });

            context.Setup(s => s.User).Returns(principal);
            //

            var model = new AdvertInputViewModel();
            IEnumerable <HttpPostedFileBase> uploadedFiles = null;

            var advertService = new Mock <IAdvertService>();

            advertService.Setup(a => a.CreateAdvert(It.IsAny <Advert>(), It.IsAny <IEnumerable <HttpPostedFileBase> >()));

            var cityService  = new Mock <ICityService>();
            var modelService = new Mock <IVehicleModelService>();

            var advertController = new CRUDAdvertController(advertService.Object, cityService.Object, modelService.Object);

            advertController.ControllerContext = new ControllerContext(context.Object, new RouteData(), advertController);

            // Act
            advertController.Create(model, uploadedFiles);

            // Assert
            advertController
            .WithCallTo(a => a.Create(model, uploadedFiles))
            .ShouldRedirectTo <CarAdverts.Web.Controllers.HomeController>(typeof(CarAdverts.Web.Controllers.HomeController).GetMethod("Index"));
        }
Beispiel #2
0
        public void SetTempData_NotificationsWithCorrectMessage_WhenOcuredExceptionOfCreatingInDb()
        {
            // Arrange
            // This code mock User.Identity.GetUserId()
            var context  = new Mock <HttpContextBase>();
            var identity = new GenericIdentity("*****@*****.**");

            identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", "1"));
            var principal = new GenericPrincipal(identity, new[] { "user" });

            context.Setup(s => s.User).Returns(principal);
            //

            var model = new AdvertInputViewModel();
            IEnumerable <HttpPostedFileBase> uploadedFiles = null;

            var advertService = new Mock <IAdvertService>();

            advertService.Setup(a => a.CreateAdvert(It.IsAny <Advert>(), It.IsAny <IEnumerable <HttpPostedFileBase> >())).Throws(new Exception());

            var cityService  = new Mock <ICityService>();
            var modelService = new Mock <IVehicleModelService>();

            var advertController = new CRUDAdvertController(advertService.Object, cityService.Object, modelService.Object);

            advertController.ControllerContext = new ControllerContext(context.Object, new RouteData(), advertController);

            // Act
            advertController.Create(model, uploadedFiles);

            //  Assert
            Assert.AreEqual(advertController.TempData["Notification"], "Exeption.");
        }
Beispiel #3
0
        public void InvokeAdvertServiceMethod_CreateAdvert_Once_WhenModelStateIsValid()
        {
            // Arrange
            // This code mock User.Identity.GetUserId()
            var context  = new Mock <HttpContextBase>();
            var identity = new GenericIdentity("*****@*****.**");

            identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", "1"));
            var principal = new GenericPrincipal(identity, new[] { "user" });

            context.Setup(s => s.User).Returns(principal);
            //

            var model = new AdvertInputViewModel();
            IEnumerable <HttpPostedFileBase> uploadedFiles = null;

            var advertService = new Mock <IAdvertService>();

            advertService.Setup(a => a.CreateAdvert(It.IsAny <Advert>(), It.IsAny <IEnumerable <HttpPostedFileBase> >()));

            var cityService  = new Mock <ICityService>();
            var modelService = new Mock <IVehicleModelService>();

            var advertController = new CRUDAdvertController(advertService.Object, cityService.Object, modelService.Object);

            advertController.ControllerContext = new ControllerContext(context.Object, new RouteData(), advertController);

            // Act
            advertController.Create(model, uploadedFiles);

            // Assert
            advertService.Verify(a => a.CreateAdvert(It.IsAny <Advert>(), It.IsAny <IEnumerable <HttpPostedFileBase> >()), Times.Once);
        }
Beispiel #4
0
        public void ThrowArgumentNullException_WhenModelParameterIsNull()
        {
            // Arrange
            // This code mock User.Identity.GetUserId()
            var context  = new Mock <HttpContextBase>();
            var identity = new GenericIdentity("*****@*****.**");

            identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", "1"));
            var principal = new GenericPrincipal(identity, new[] { "user" });

            context.Setup(s => s.User).Returns(principal);
            //

            AdvertInputViewModel             model         = null;
            IEnumerable <HttpPostedFileBase> uploadedFiles = null;

            var advertService = new Mock <IAdvertService>();

            advertService.Setup(a => a.CreateAdvert(It.IsAny <Advert>(), It.IsAny <IEnumerable <HttpPostedFileBase> >()));

            var cityService  = new Mock <ICityService>();
            var modelService = new Mock <IVehicleModelService>();

            var advertController = new CRUDAdvertController(advertService.Object, cityService.Object, modelService.Object);

            advertController.ControllerContext = new ControllerContext(context.Object, new RouteData(), advertController);

            // Act and Assert
            Assert.Throws <ArgumentNullException>(() => advertController.Create(model, uploadedFiles));
        }
Beispiel #5
0
        public void ReturnDefaultViewWithAdvertInputViewModel_WhenModelStateIsNotValid()
        {
            // Arrange
            var model = new AdvertInputViewModel();
            IEnumerable <HttpPostedFileBase> uploadedFiles = null;

            var advertService = new Mock <IAdvertService>();
            var cityService   = new Mock <ICityService>();
            var modelService  = new Mock <IVehicleModelService>();

            var advertController = new CRUDAdvertController(advertService.Object, cityService.Object, modelService.Object);


            advertController.ModelState.AddModelError("test", "test");

            // Act and Assert
            advertController
            .WithCallTo(x => x.Create(model, uploadedFiles))
            .ShouldRenderDefaultView()
            .WithModel <AdvertInputViewModel>(x =>
            {
                Assert.IsNull(x.Title);
                Assert.AreEqual(x.VehicleModelId, 0);
                Assert.AreEqual(x.Year, 0);
                Assert.AreEqual(x.Price, 0);
                Assert.AreEqual(x.Power, 0);
                Assert.AreEqual(x.DistanceCoverage, 0);
                Assert.AreEqual(x.CityId, 0);
                Assert.IsNull(x.Description);
            }
                                              );
        }
        public void GetAndSetDataCorrectly(int testYear)
        {
            // Arrange and Act
            var viewModel = new AdvertInputViewModel {
                Year = testYear
            };

            // Assert
            Assert.AreEqual(testYear, viewModel.Year);
        }
Beispiel #7
0
        public void GetAndSetDataCorrectly(int testId)
        {
            // Arrange and Act
            var viewModel = new AdvertInputViewModel {
                VehicleModelId = testId
            };

            // Assert
            Assert.AreEqual(testId, viewModel.VehicleModelId);
        }
Beispiel #8
0
        public void GetAndSetIdCorrectly(int testDistanceCoverage)
        {
            // Arrange and Act
            var viewModel = new AdvertInputViewModel {
                DistanceCoverage = testDistanceCoverage
            };

            // Assert
            Assert.AreEqual(testDistanceCoverage, viewModel.DistanceCoverage);
        }
        public void GetAndSetDataCorrectly(string testDescr)
        {
            // Arrange and Act
            var viewModel = new AdvertInputViewModel {
                Description = testDescr
            };

            // Assert
            Assert.AreEqual(testDescr, viewModel.Description);
        }
        public void GetAndSetDataCorrectly(decimal testPrice)
        {
            // Arrange and Act
            var viewModel = new AdvertInputViewModel {
                Price = testPrice
            };

            // Assert
            Assert.AreEqual(testPrice, viewModel.Price);
        }
Beispiel #11
0
        public void GetAndSetDataCorrectly(string testTitle)
        {
            // Arrange and Act
            var viewModel = new AdvertInputViewModel {
                Title = testTitle
            };

            // Assert
            Assert.AreEqual(testTitle, viewModel.Title);
        }
Beispiel #12
0
        public void GetAndSetIdCorrectly(int testPower)
        {
            // Arrange and Act
            var viewModel = new AdvertInputViewModel {
                Power = testPower
            };

            // Assert
            Assert.AreEqual(testPower, viewModel.Power);
        }
Beispiel #13
0
        public void RedirectToDefaultViewWithCorrectParameterModel_WhenOcuredExceptionOfCreatingInDb()
        {
            // Arrange
            // This code mock User.Identity.GetUserId()
            var context  = new Mock <HttpContextBase>();
            var identity = new GenericIdentity("*****@*****.**");

            identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", "1"));
            var principal = new GenericPrincipal(identity, new[] { "user" });

            context.Setup(s => s.User).Returns(principal);
            //

            var model = new AdvertInputViewModel();
            IEnumerable <HttpPostedFileBase> uploadedFiles = null;

            var advertService = new Mock <IAdvertService>();

            advertService.Setup(a => a.CreateAdvert(It.IsAny <Advert>(), It.IsAny <IEnumerable <HttpPostedFileBase> >())).Throws(new Exception());

            var cityService  = new Mock <ICityService>();
            var modelService = new Mock <IVehicleModelService>();

            var advertController = new CRUDAdvertController(advertService.Object, cityService.Object, modelService.Object);

            advertController.ControllerContext = new ControllerContext(context.Object, new RouteData(), advertController);

            // Act and Assert
            advertController
            .WithCallTo(c => c.Create(model, uploadedFiles))
            .ShouldRenderDefaultView()
            .WithModel <AdvertInputViewModel>(x =>
            {
                Assert.IsNull(x.Title);
                Assert.AreEqual(x.VehicleModelId, 0);
                Assert.AreEqual(x.Year, 0);
                Assert.AreEqual(x.Price, 0);
                Assert.AreEqual(x.Power, 0);
                Assert.AreEqual(x.DistanceCoverage, 0);
                Assert.AreEqual(x.CityId, 0);
                Assert.IsNull(x.Description);
            });
        }
        public ActionResult Create(AdvertInputViewModel model, IEnumerable <HttpPostedFileBase> uploadedFiles)
        {
            Guard.WhenArgument(model, nameof(model)).IsNull().Throw();

            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }

            var advert = new Advert()
            {
                Title            = model.Title,
                VehicleModelId   = model.VehicleModelId,
                UserId           = this.User.Identity.GetUserId(),
                Year             = model.Year,
                Price            = model.Price,
                Power            = model.Power,
                DistanceCoverage = model.DistanceCoverage,
                CityId           = model.CityId,
                Description      = model.Description,
                CreatedOn        = DateTime.Now
            };

            try
            {
                this.advertService.CreateAdvert(advert, uploadedFiles);
            }
            catch (Exception)
            {
                this.TempData["Notification"] = "Exeption.";
                return(View(model));
            }


            this.TempData["Notification"] = "Succesfull advert creation.";

            return(RedirectToAction("Index", "Home", new { area = "" }));
        }
Beispiel #15
0
        public void GetAndSetDataCorrectly()
        {
            // Arrange and Act
            var testFiles = new List <FileViewModel>()
            {
                new FileViewModel()
                {
                    Id = 1
                },
                new FileViewModel()
                {
                    Id = 2
                },
            };

            var viewModel = new AdvertInputViewModel {
                FilesToBeUploaded = testFiles
            };

            // Assert
            Assert.AreEqual(testFiles[0].Id, viewModel.FilesToBeUploaded.ToList()[0].Id);
            Assert.AreEqual(testFiles[1].Id, viewModel.FilesToBeUploaded.ToList()[1].Id);
        }