public void InvokeImportMethod_IfUserIsLoggedAndIsAdmin()
        {
            //Arrange
            var fakeUserSession = new Mock <IUserSession>();

            fakeUserSession.Setup(s => s.HasSomeoneLogged()).Returns(true);
            fakeUserSession.Setup(s => s.HasAdminRights()).Returns(true);

            var fakeImportService = new Mock <IImportService>();
            var importCommand     = new ImportExternalDataCommand(fakeImportService.Object, fakeUserSession.Object);

            //Act
            importCommand.ExecuteThisCommand();
            //Assert
            fakeImportService.Verify(v => v.Import(), Times.Once);
        }
        public void RequireAdminRights_IfUserIsLogged()
        {
            //Arrange
            var fakeUserSession = new Mock <IUserSession>();

            fakeUserSession.Setup(s => s.HasSomeoneLogged()).Returns(true);
            fakeUserSession.Setup(s => s.HasAdminRights()).Returns(false);

            var fakeImportService = new Mock <IImportService>();
            var importCommand     = new ImportExternalDataCommand(fakeImportService.Object, fakeUserSession.Object);
            var expectedMessage   = "User is neither admin nor moderator and cannot add products!";

            //Act
            var actualMessage = importCommand.ExecuteThisCommand();

            //Assert
            Assert.AreEqual(expectedMessage, actualMessage);
        }
        public void ReturnCorrectResult_IfUserIsLoggedAndIsAdmin()
        {
            //Arrange
            var fakeUserSession = new Mock <IUserSession>();

            fakeUserSession.Setup(s => s.HasSomeoneLogged()).Returns(true);
            fakeUserSession.Setup(s => s.HasAdminRights()).Returns(true);

            var expectedResult = "test";

            var fakeImportService = new Mock <IImportService>();

            fakeImportService.Setup(s => s.Import()).Returns(expectedResult);
            var importCommand = new ImportExternalDataCommand(fakeImportService.Object, fakeUserSession.Object);

            //Act
            var actualResult = importCommand.ExecuteThisCommand();

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