public void ShouldCallUploadMethodFromImageUploader(string imageFileName, string folderName)
        {
            // Arrange
            var fileUpload = new FileUpload();

            var mockedView = new Mock <IEditProductView>();

            mockedView.Setup(v => v.Model).Returns(new EditProductViewModel());

            var mockedProductsServices   = new Mock <IProductsService>();
            var mockedCategoriesServices = new Mock <ICategoriesService>();
            var mockedRoomsServices      = new Mock <IRoomsService>();
            var mockedImageUploader      = new Mock <IImageUploader>();

            mockedImageUploader.Setup(iu => iu.Upload(It.IsAny <FileUpload>(),
                                                      It.IsAny <HttpServerUtility>(),
                                                      It.IsAny <string>(),
                                                      It.IsAny <string>())).Verifiable();

            var editProductPresenter = new EditProductPresenter(mockedView.Object,
                                                                mockedProductsServices.Object,
                                                                mockedCategoriesServices.Object,
                                                                mockedRoomsServices.Object,
                                                                mockedImageUploader.Object);

            // Act
            mockedView.Raise(v => v.UploadingImage += null,
                             new UploadImageEventArgs(fileUpload, It.IsAny <HttpServerUtility>(), imageFileName, folderName));

            // Assert
            mockedImageUploader.Verify(iu =>
                                       iu.Upload(fileUpload, It.IsAny <HttpServerUtility>(), imageFileName, folderName), Times.Once);
        }
Example #2
0
        public void ShouldCallGetRoomsMethodFromRoomsServices()
        {
            int id = 2;

            // Arrange
            var mockedView = new Mock <IEditProductView>();

            mockedView.Setup(v => v.Model).Returns(new EditProductViewModel());

            var mockedProductsServices   = new Mock <IProductsService>();
            var mockedCategoriesServices = new Mock <ICategoriesService>();
            var mockedRoomsServices      = new Mock <IRoomsService>();

            mockedRoomsServices.Setup(rs => rs.GetRooms()).Verifiable();
            var mockedImageUploader = new Mock <IImageUploader>();

            var editProductPresenter = new EditProductPresenter(mockedView.Object,
                                                                mockedProductsServices.Object,
                                                                mockedCategoriesServices.Object,
                                                                mockedRoomsServices.Object,
                                                                mockedImageUploader.Object);

            // Act
            mockedView.Raise(v => v.Initial += null, new GetProductEventArgs(id));

            // Assert
            mockedRoomsServices.Verify(rs => rs.GetRooms(), Times.Once);
        }
Example #3
0
        public void ShouldAssignToViewModelProduct_ReceivedFromGetProductById(int id)
        {
            // Arrange
            var product = new Product()
            {
                Id = 1
            };

            var mockedView = new Mock <IEditProductView>();

            mockedView.Setup(v => v.Model).Returns(new EditProductViewModel());

            var mockedProductsServices = new Mock <IProductsService>();

            mockedProductsServices.Setup(ps => ps.GetProductById(It.IsAny <int>()))
            .Returns(product)
            .Verifiable();
            var mockedCategoriesServices = new Mock <ICategoriesService>();
            var mockedRoomsServices      = new Mock <IRoomsService>();

            var mockedImageUploader = new Mock <IImageUploader>();

            var editProductPresenter = new EditProductPresenter(mockedView.Object,
                                                                mockedProductsServices.Object,
                                                                mockedCategoriesServices.Object,
                                                                mockedRoomsServices.Object,
                                                                mockedImageUploader.Object);

            // Act
            mockedView.Raise(v => v.Initial += null, new GetProductEventArgs(id));

            // Assert
            Assert.AreEqual(product, mockedView.Object.Model.Product);
        }
        public void ShouldCallEditProductMethodFromProductsService()
        {
            // Arrange
            var product = new Product();

            var mockedView = new Mock <IEditProductView>();

            mockedView.Setup(v => v.Model).Returns(new EditProductViewModel());

            var mockedProductFactory   = new Mock <IProductFactory>();
            var mockedProductsServices = new Mock <IProductsService>();

            mockedProductsServices.Setup(ps => ps.EditProduct(It.IsAny <Product>()))
            .Verifiable();
            var mockedCategoriesServices = new Mock <ICategoriesService>();
            var mockedRoomsServices      = new Mock <IRoomsService>();
            var mockedImageUploader      = new Mock <IImageUploader>();

            var editProductPresenter = new EditProductPresenter(mockedView.Object,
                                                                mockedProductsServices.Object,
                                                                mockedCategoriesServices.Object,
                                                                mockedRoomsServices.Object,
                                                                mockedImageUploader.Object);

            // Act
            mockedView.Raise(v => v.EdittingProduct += null,
                             new EditProductEventArgs(product));

            // Assert
            mockedProductsServices.Verify(ps => ps.EditProduct(product), Times.Once);
        }
Example #5
0
        public void ShouldCreateAnInstanceInheritingPresenter_WhenValidDependenciesArePassed()
        {
            // Arrange
            var mockedView              = new Mock <IEditProductView>();
            var mockedProductsService   = new Mock <IProductsService>();
            var mockedCategoriesService = new Mock <ICategoriesService>();
            var mockedRoomsService      = new Mock <IRoomsService>();
            var mockedImageUploader     = new Mock <IImageUploader>();

            // Act and Assert
            var editProductPresenter = new EditProductPresenter(mockedView.Object,
                                                                mockedProductsService.Object,
                                                                mockedCategoriesService.Object,
                                                                mockedRoomsService.Object,
                                                                mockedImageUploader.Object);

            Assert.IsInstanceOf <Presenter <IEditProductView> >(editProductPresenter);
        }
Example #6
0
        public void ShouldSubscribeToEditProductViewOnUploadingImageEvent()
        {
            // Arrange
            var mockedView              = new MockedEditProductView();
            var mockedProductsService   = new Mock <IProductsService>();
            var mockedCategoriesService = new Mock <ICategoriesService>();
            var mockedRoomsService      = new Mock <IRoomsService>();
            var mockedImageUploader     = new Mock <IImageUploader>();

            // Act
            var editProductPresenter = new EditProductPresenter(mockedView,
                                                                mockedProductsService.Object,
                                                                mockedCategoriesService.Object,
                                                                mockedRoomsService.Object,
                                                                mockedImageUploader.Object);

            // Assert
            Assert.IsTrue(mockedView.IsSubscribedMethod("OnUploadingImage"));
        }
Example #7
0
        public void ShouldAssignToViewModelRooms_ReceivedFromGetRoomsMethod()
        {
            // Arrange
            int id    = 3;
            var rooms = new List <Room>()
            {
                new Room()
                {
                    Id = 1
                },
                new Room()
                {
                    Id = 2
                }
            };

            var mockedView = new Mock <IEditProductView>();

            mockedView.Setup(v => v.Model).Returns(new EditProductViewModel());

            var mockedProductFactory     = new Mock <IProductFactory>();
            var mockedProductsServices   = new Mock <IProductsService>();
            var mockedCategoriesServices = new Mock <ICategoriesService>();
            var mockedRoomsServices      = new Mock <IRoomsService>();

            mockedRoomsServices.Setup(rs => rs.GetRooms())
            .Returns(rooms)
            .Verifiable();

            var mockedImageUploader = new Mock <IImageUploader>();

            var editProductPresenter = new EditProductPresenter(mockedView.Object,
                                                                mockedProductsServices.Object,
                                                                mockedCategoriesServices.Object,
                                                                mockedRoomsServices.Object,
                                                                mockedImageUploader.Object);

            // Act
            mockedView.Raise(v => v.Initial += null, new GetProductEventArgs(id));

            // Assert
            CollectionAssert.AreEquivalent(rooms, mockedView.Object.Model.Rooms);
        }
Example #8
0
        public void ShouldAssignToViewModelCategories_ReceivedFromGetCategories()
        {
            // Arrange
            int id         = 5;
            var categories = new List <Category>()
            {
                new Category()
                {
                    Id = 3
                },
                new Category()
                {
                    Id = 4
                }
            };

            var mockedView = new Mock <IEditProductView>();

            mockedView.Setup(v => v.Model).Returns(new EditProductViewModel());

            var mockedProductsServices   = new Mock <IProductsService>();
            var mockedCategoriesServices = new Mock <ICategoriesService>();

            mockedCategoriesServices.Setup(cs => cs.GetCategories())
            .Returns(categories)
            .Verifiable();
            var mockedRoomsServices = new Mock <IRoomsService>();

            var mockedImageUploader = new Mock <IImageUploader>();

            var editProductPresenter = new EditProductPresenter(mockedView.Object,
                                                                mockedProductsServices.Object,
                                                                mockedCategoriesServices.Object,
                                                                mockedRoomsServices.Object,
                                                                mockedImageUploader.Object);

            // Act
            mockedView.Raise(v => v.Initial += null, new GetProductEventArgs(id));

            // Assert
            CollectionAssert.AreEquivalent(categories, mockedView.Object.Model.Categories);
        }
        public void ShouldRecalculateProductDiscountPriceBaseOnNewPriceAndDiscountPercentage(decimal oldDiscountPrice,
                                                                                             decimal price,
                                                                                             int discountPercentage)
        {
            // Arrange
            var product = new Product()
            {
                DiscountedPrice    = oldDiscountPrice,
                Price              = price,
                DiscountPercentage = discountPercentage
            };

            var newDiscountPrice = price - (price * (discountPercentage / 100.0M));

            var mockedView = new Mock <IEditProductView>();

            mockedView.Setup(v => v.Model).Returns(new EditProductViewModel());

            var mockedProductFactory     = new Mock <IProductFactory>();
            var mockedProductsServices   = new Mock <IProductsService>();
            var mockedCategoriesServices = new Mock <ICategoriesService>();
            var mockedRoomsServices      = new Mock <IRoomsService>();

            var mockedImageUploader = new Mock <IImageUploader>();

            var editProductPresenter = new EditProductPresenter(mockedView.Object,
                                                                mockedProductsServices.Object,
                                                                mockedCategoriesServices.Object,
                                                                mockedRoomsServices.Object,
                                                                mockedImageUploader.Object);

            // Act
            mockedView.Raise(v => v.EdittingProduct += null,
                             new EditProductEventArgs(product));

            // Assert
            Assert.AreEqual(product.DiscountedPrice, newDiscountPrice);
            Assert.AreNotEqual(product.DiscountedPrice, oldDiscountPrice);
        }
Example #10
0
 public EditProductUserControl(EditProductPresenter presenter)
 {
     // initialize databindings based on properties of the presenter
 }