public void SetLoggedUserToNull_WhenProcessingValidLogOutCommand() { // arrange var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var commandStub = new Mock <ICommand>(); string commandName = "Logout"; var parametersCommand = new List <string>(); commandStub.Setup(x => x.Name).Returns(commandName); commandStub.Setup(x => x.Parameters).Returns(parametersCommand); var commandListToReturn = new List <ICommand>() { commandStub.Object }; commandParserStub.Setup(x => x.ReadCommands()). Returns(commandListToReturn); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); var loggedUserStub = new Mock <IUser>(); engine.LoggedUser = loggedUserStub.Object; // act engine.Start(); // asssert Assert.IsNull(engine.LoggedUser); }
public void CallEngineLoggersWriteMethod_WhenFinishedProcessingCommands() { // arrange var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var commandStub = new Mock <ICommand>(); var userToAddStub = new Mock <IUser>(); string commandName = "InvalidCommandName"; commandStub.Setup(x => x.Name).Returns(commandName); var commnadListToReturn = new List <ICommand>() { commandStub.Object }; commandParserStub.Setup(x => x.ReadCommands()). Returns(commnadListToReturn); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); var loggerMock = new Mock <ILogger>(); loggerMock.Setup(x => x.Write(It.IsAny <string>())); engine.Logger = loggerMock.Object; // act engine.Start(); // asssert loggerMock.Verify(x => x.Write(It.IsAny <string>()), Times.Once); }
public void InvokeLoggedUserAddVehicleMethod_WhenProcessingValidAddVehicleCommand() { // arrange var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var commandStub = new Mock <ICommand>(); string commandName = "AddVehicle"; string vehicleType = "Car"; string make = "Volkswagen"; string model = "Golf mk4"; string price = "900"; string additionalParam = "5"; // car -> seats count var carToAddStub = new Mock <IVehicle>(); var parametersCommand = new List <string>() { vehicleType, make, model, price, additionalParam }; commandStub.Setup(x => x.Name).Returns(commandName); commandStub.Setup(x => x.Parameters).Returns(parametersCommand); var commnadListToReturn = new List <ICommand>() { commandStub.Object }; commandParserStub.Setup(x => x.ReadCommands()). Returns(commnadListToReturn); factoryStub.Setup(x => x.CreateCar( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <decimal>(), It.IsAny <int>() )) .Returns(carToAddStub.Object); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); var loggedUserMock = new Mock <IUser>(); loggedUserMock.Setup(x => x.AddVehicle(It.IsAny <IVehicle>())); engine.LoggedUser = loggedUserMock.Object; // act engine.Start(); // asssert loggedUserMock.Verify(x => x.AddVehicle(It.IsAny <IVehicle>()), Times.Once); }
public void NotAddUserToEngineUsers_WhenProcessingRegisterUserCommandButWithUserAlreadyLoggedIn() { // arrange var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var commandStub = new Mock <ICommand>(); var userToAddStub = new Mock <IUser>(); string commandName = "RegisterUser"; string username = "******"; string firstName = "Borislav"; string lastName = "Borisov"; string password = "******"; string role = "Normal"; var parametersCommand = new List <string>() { username, firstName, lastName, password, role }; commandStub.Setup(x => x.Name).Returns(commandName); commandStub.Setup(x => x.Parameters).Returns(parametersCommand); var commnadListToReturn = new List <ICommand>() { commandStub.Object }; commandParserStub.Setup(x => x.ReadCommands()). Returns(commnadListToReturn); factoryStub.Setup(x => x.CreateUser(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>() )) .Returns(userToAddStub.Object); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); var loggedUserStub = new Mock <IUser>(); engine.LoggedUser = loggedUserStub.Object; // act engine.Start(); // asssert Assert.AreEqual(0, engine.Users.Count); }
public void SetsLoggerUserToNull_WhenObjectIsConstructed() { // arrange and act var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); // act and assert Assert.IsNull(engine.LoggedUser); }
public void InitiateUsersCollection_WhenObjectIsConstructed() { // arrange and act var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); // act and assert Assert.IsNotNull(engine.Users); }
public void AssingCommandParserCoorectly_WhenObjectIsConstructed() { // arrange and act var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); // act and assert Assert.AreSame(commandParserStub.Object, engine.CommandParser); }
public void SetLoggerToConsoleLoggerInstance_WhenObjectIsConstructed() { // arrange and act var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); // assert Assert.IsInstanceOf <ConsoleLogger>(engine.Logger); }
public void InvokeLoggedUsersRemoveVehicleMethod_WhenProcessingRemoveVehicleCommnadWithValidInRangeVehicleIndex() { // arrange var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var commandStub = new Mock <ICommand>(); string commandName = "RemoveVehicle"; string indexVehicle = "1"; var parametersCommand = new List <string>() { indexVehicle }; commandStub.Setup(x => x.Name).Returns(commandName); commandStub.Setup(x => x.Parameters).Returns(parametersCommand); var commnadListToReturn = new List <ICommand>() { commandStub.Object }; commandParserStub.Setup(x => x.ReadCommands()). Returns(commnadListToReturn); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); var loggedUserMock = new Mock <IUser>(); var loggedUserVehicle = new Mock <IVehicle>(); var loggedUserVehicles = new List <IVehicle>() { loggedUserVehicle.Object }; loggedUserMock.Setup(x => x.Vehicles).Returns(loggedUserVehicles); loggedUserMock.Setup(x => x.RemoveVehicle(It.IsAny <IVehicle>())); engine.LoggedUser = loggedUserMock.Object; // act engine.Start(); // assert loggedUserMock.Verify( x => x.RemoveVehicle(It.IsAny <IVehicle>()), Times.Once ); }
public void SetCommandParserToDeafultConsoleCommandParser_WhenResetCalled() { // arrange var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); // act engine.Reset(); // assert Assert.IsInstanceOf <ConsoleCommandParser>(engine.CommandParser); }
public void NotChangeLoggedUser_WhenProcessingLoginCommandButAUserIsAlreadyLoggedIn() { // arrange var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var commandStub = new Mock <ICommand>(); var userToLogStub = new Mock <IUser>(); string commandName = "Login"; string username = "******"; string password = "******"; userToLogStub.Setup(x => x.Username).Returns(username); userToLogStub.Setup(x => x.Password).Returns(password); var parametersCommand = new List <string>() { username, password }; commandStub.Setup(x => x.Name).Returns(commandName); commandStub.Setup(x => x.Parameters).Returns(parametersCommand); var commnadListToReturn = new List <ICommand>() { commandStub.Object }; commandParserStub.Setup(x => x.ReadCommands()). Returns(commnadListToReturn); var alreadyLoggedUser = new Mock <IUser>(); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); engine.LoggedUser = alreadyLoggedUser.Object; engine.Users.Add(userToLogStub.Object); // act engine.Start(); // asssert Assert.AreSame(alreadyLoggedUser.Object, engine.LoggedUser); Assert.AreNotSame(userToLogStub.Object, engine.LoggedUser); }
public void InvokeUsersPrintVehiclesMethod_WhenProcessingAValidShowVehiclesCommandWithUsernameThatIsCOnatinedInEnginesUsers() { // arrange var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var commandStub = new Mock <ICommand>(); var userMock = new Mock <IUser>(); string commandName = "ShowVehicles"; string username = "******"; userMock.Setup(x => x.PrintVehicles()); userMock.Setup(x => x.Username).Returns(username); var commandParameters = new List <string>() { username }; commandStub.Setup(x => x.Name).Returns(commandName); commandStub.Setup(x => x.Parameters).Returns(commandParameters); var commnadListToReturn = new List <ICommand>() { commandStub.Object }; commandParserStub.Setup(x => x.ReadCommands()). Returns(commnadListToReturn); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); var loggedUsserStub = new Mock <IUser>(); loggedUsserStub.Setup(x => x.Role).Returns(Role.Admin); engine.LoggedUser = loggedUsserStub.Object; engine.Users.Add(userMock.Object); // act engine.Start(); // assert userMock.Verify(x => x.PrintVehicles(), Times.Once); }
public void SetLoggedUserToNull_WhenResetCalled() { // arrange var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var userStub = new Mock <IUser>(); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); engine.LoggedUser = userStub.Object; // act engine.Reset(); // assert Assert.IsNull(engine.LoggedUser); }
public void SetUsersCollectionToEmpty_WhenResetCalled() { // arrange var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var userStub = new Mock <IUser>(); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); engine.Users.Add(userStub.Object); // act engine.Reset(); // assert Assert.AreEqual(0, engine.Users.Count); }
public void NotSetLoggedUser_WhenLoggingAUserWithCorrectUsernameButWrongPassword() { // arrange var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var commandStub = new Mock <ICommand>(); var userToLogStub = new Mock <IUser>(); string commandName = "Login"; string username = "******"; string password = "******"; string realPassword = "******"; userToLogStub.Setup(x => x.Username).Returns(username); userToLogStub.Setup(x => x.Password).Returns(realPassword); var parametersCommand = new List <string>() { username, password }; commandStub.Setup(x => x.Name).Returns(commandName); commandStub.Setup(x => x.Parameters).Returns(parametersCommand); var commnadListToReturn = new List <ICommand>() { commandStub.Object }; commandParserStub.Setup(x => x.ReadCommands()). Returns(commnadListToReturn); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); engine.Users.Add(userToLogStub.Object); // act engine.Start(); // asssert Assert.IsNull(engine.LoggedUser); }
public void InvokeEnginesLoggerWriteMethodWithStrinsContainingInvalidCommand_WhenProcessingInvalidCommand() { // arrange var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var commandStub = new Mock <ICommand>(); string commandName = "invalidCommandName"; commandStub.Setup(x => x.Name).Returns(commandName); var commnadListToReturn = new List <ICommand>() { commandStub.Object }; commandParserStub.Setup(x => x.ReadCommands()). Returns(commnadListToReturn); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); var loggerMock = new Mock <ILogger>(); string expectedContainedString = "Invalid command"; loggerMock.Setup(x => x.Write(It.Is <string>(y => y.Contains(expectedContainedString)))); var loggedUserStub = new Mock <IUser>(); engine.LoggedUser = loggedUserStub.Object; engine.Logger = loggerMock.Object; // act engine.Start(); // assert loggerMock.Verify( x => x.Write(It.Is <string>(y => y.Contains(expectedContainedString))), Times.Once ); }
public void InvokeEnginesWriterWithStringThatContainsAdming_WhenTryingToShowUsersToAUserThatIsNotAdmin() { // arrange var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var commandStub = new Mock <ICommand>(); string commandName = "ShowUsers"; commandStub.Setup(x => x.Name).Returns(commandName); var commnadListToReturn = new List <ICommand>() { commandStub.Object }; commandParserStub.Setup(x => x.ReadCommands()). Returns(commnadListToReturn); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); var loggedUsserStub = new Mock <IUser>(); loggedUsserStub.Setup(x => x.Role).Returns(Role.Normal); var loggerMock = new Mock <ILogger>(); loggerMock.Setup(x => x.Write(It.Is <string>(y => y.Contains("admin")))); engine.Logger = loggerMock.Object; engine.LoggedUser = loggedUsserStub.Object; // act engine.Start(); // assert loggerMock.Verify( x => x.Write(It.Is <string>(y => y.Contains("admin"))), Times.Once ); }
public void InvokeAllEngineUsersToStringMethod_WhenProcesingValidShowUsersCommandWithAdminLoggedUser() { // arrange var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var commandStub = new Mock <ICommand>(); var userMock = new Mock <IUser>(); userMock.Setup(x => x.ToString()); string commandName = "ShowUsers"; commandStub.Setup(x => x.Name).Returns(commandName); var commnadListToReturn = new List <ICommand>() { commandStub.Object }; commandParserStub.Setup(x => x.ReadCommands()). Returns(commnadListToReturn); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); var loggedUsserStub = new Mock <IUser>(); loggedUsserStub.Setup(x => x.Role).Returns(Role.Admin); engine.LoggedUser = loggedUsserStub.Object; engine.Users.Add(userMock.Object); // act engine.Start(); // assert userMock.Verify(x => x.ToString(), Times.Once); }
public void InvokeLoggedUserAddCommentMethod_WhenProcessingValidAddCommentCommandWithAuthroThatIsEistingInEnginesUsers() { // arrange var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var commandStub = new Mock <ICommand>(); string commandName = "AddComment"; string content = "SomeRandomContent"; string author = "Ivancho"; string vehicleIndex = "1"; var parametersCommand = new List <string>() { content, author, vehicleIndex }; commandStub.Setup(x => x.Name).Returns(commandName); commandStub.Setup(x => x.Parameters).Returns(parametersCommand); var commnadListToReturn = new List <ICommand>() { commandStub.Object }; commandParserStub.Setup(x => x.ReadCommands()). Returns(commnadListToReturn); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); var userStub = new Mock <IUser>(); userStub.Setup(x => x.Username).Returns(author); var userMockVehicle = new Mock <IVehicle>(); var userMockVehicles = new List <IVehicle>() { userMockVehicle.Object }; userStub.Setup(x => x.Vehicles).Returns(userMockVehicles); var commentToAddStub = new Mock <IComment>(); factoryStub.Setup(x => x.CreateComment(It.IsAny <string>())) .Returns(commentToAddStub.Object); engine.Users.Add(userStub.Object); var loggedUserMock = new Mock <IUser>(); loggedUserMock.Setup(x => x.AddComment(It.IsAny <IComment>(), It.IsAny <IVehicle>())); engine.LoggedUser = loggedUserMock.Object; // act engine.Start(); // assert loggedUserMock.Verify( x => x.AddComment(It.IsAny <IComment>(), It.IsAny <IVehicle>()), Times.Once); }
public void InvkodeLoggedUsersRemoveCommentMethod_WhenProcessingValidRemoveCommentCommandWithValidParameter() { // arrange var factoryStub = new Mock <IDealershipFactory>(); var commandParserStub = new Mock <ICommandParser>(); var commandStub = new Mock <ICommand>(); string commandName = "RemoveComment"; string vehicleIndex = "1"; string commentIndex = "1"; string username = "******"; var parametersCommand = new List <string>() { vehicleIndex, commentIndex, username }; commandStub.Setup(x => x.Name).Returns(commandName); commandStub.Setup(x => x.Parameters).Returns(parametersCommand); var commnadListToReturn = new List <ICommand>() { commandStub.Object }; commandParserStub.Setup(x => x.ReadCommands()). Returns(commnadListToReturn); var engine = new FakeDealershipEngine(factoryStub.Object, commandParserStub.Object); var userStub = new Mock <IUser>(); userStub.Setup(x => x.Username).Returns(username); var commentStub = new Mock <IComment>(); var vehicleComments = new List <IComment>() { commentStub.Object }; var userMockVehicle = new Mock <IVehicle>(); userMockVehicle.Setup(x => x.Comments).Returns(vehicleComments); var userMockVehicles = new List <IVehicle>() { userMockVehicle.Object }; userStub.Setup(x => x.Vehicles).Returns(userMockVehicles); engine.Users.Add(userStub.Object); var loggedUserMock = new Mock <IUser>(); loggedUserMock.Setup(x => x.RemoveComment(It.IsAny <IComment>(), It.IsAny <IVehicle>())); engine.LoggedUser = loggedUserMock.Object; // act engine.Start(); // assert loggedUserMock.Verify( x => x.RemoveComment(It.IsAny <IComment>(), It.IsAny <IVehicle>()), Times.Once); }