예제 #1
0
        public void CallRemoveProductInProductService_WhenProductIdIsPassedAndUserIsLogged()
        {
            // Arange
            var contextMock            = new Mock <IStoreContext>();
            var writerMock             = new Mock <IWriter>();
            var readerMock             = new Mock <IReader>();
            var productServiceMock     = new Mock <IProductService>();
            var userServiceMock        = new Mock <IUserService>();
            var loggedUserProviderMock = new Mock <ILoggedUserProvider>();

            userServiceMock.Setup(m => m.IsUserLogged()).Returns(true);

            var command = new RemoveProductCommand(contextMock.Object, writerMock.Object,
                                                   readerMock.Object, productServiceMock.Object, userServiceMock.Object,
                                                   loggedUserProviderMock.Object);

            // Act
            command.Execute();

            // Assert
            productServiceMock.Verify(m => m.RemoveProductWithId(It.IsAny <string>()), Times.Once);
        }
예제 #2
0
        public void ReturnCustomMessage_WhenUserIsNotLogged()
        {
            // Arange
            var contextMock            = new Mock <IStoreContext>();
            var writerMock             = new Mock <IWriter>();
            var readerMock             = new Mock <IReader>();
            var productServiceMock     = new Mock <IProductService>();
            var userServiceMock        = new Mock <IUserService>();
            var loggedUserProviderMock = new Mock <ILoggedUserProvider>();

            userServiceMock.Setup(m => m.IsUserLogged()).Returns(false);

            var command = new RemoveProductCommand(contextMock.Object, writerMock.Object,
                                                   readerMock.Object, productServiceMock.Object, userServiceMock.Object,
                                                   loggedUserProviderMock.Object);

            string expectedResult = "You must Login First!";
            // Act
            var actualResul = command.Execute();

            // Assert
            Assert.AreEqual(expectedResult, actualResul);
        }