public void ReturnInstance_WhenProvidedValidParameters()
        {
            //Arrange
            var stubProductService = new Mock <IProductService>();
            var stubReader         = new Mock <IReader>();
            var stubWriter         = new Mock <IWriter>();

            //Act
            var testedCommand = new SearchCategoryCommand
                                    (stubProductService.Object, stubReader.Object, stubWriter.Object);

            //Assert
            Assert.IsInstanceOfType(testedCommand, typeof(SearchCategoryCommand));
        }
        public void Invoke_ProductServiceGetProductByCategoryName()
        {
            //Arrange
            var mockProductService = new Mock <IProductService>();
            var stubReader         = new Mock <IReader>();
            var stubWriter         = new Mock <IWriter>();
            var testedCommand      = new SearchCategoryCommand
                                         (mockProductService.Object, stubReader.Object, stubWriter.Object);


            //Act
            testedCommand.ExecuteThisCommand();

            //Assert
            mockProductService.Verify(x => x.GetProductsByCategoryName(It.IsAny <string>()), Times.Once);
        }
        public void Invoke_ReaderRead()
        {
            //Arrange
            var stubProductService = new Mock <IProductService>();
            var mockReader         = new Mock <IReader>();
            var stubWriter         = new Mock <IWriter>();
            var testedCommand      = new SearchCategoryCommand
                                         (stubProductService.Object, mockReader.Object, stubWriter.Object);


            //Act
            testedCommand.ExecuteThisCommand();

            //Assert
            mockReader.Verify(x => x.Read(), Times.Once);
        }
        public void GetProductsSellingPrice_IfMatchExist()
        {
            //Arrange
            var stubProductService = new Mock <IProductService>();
            var mockProduct = new Mock <IProductModel>();
            var fakeCollection = new List <IProductModel> {
                mockProduct.Object
            }.AsEnumerable();

            stubProductService.Setup(x => x.GetProductsByCategoryName(It.IsAny <string>()))
            .Returns(fakeCollection);
            var stubReader    = new Mock <IReader>();
            var stubWriter    = new Mock <IWriter>();
            var testedCommand = new SearchCategoryCommand
                                    (stubProductService.Object, stubReader.Object, stubWriter.Object);


            //Act
            testedCommand.ExecuteThisCommand();

            //Assert
            mockProduct.Verify(x => x.SellingPrice, Times.Once);
        }