public void StopAfterLastCommand() { // Arrange var storage = new Mock <ICommandsHistoryStorage>(); storage.Setup(s => s.Load()).Returns(new[] { "a", "b", "c" }); var manager = new CommandsHistoryManager(storage.Object); while (manager.TryGetPrevCommand(out string _)) { } // Act int count = 0; for (int i = 0; i < 10; i++) { if (!manager.TryGetNextCommand(out string _)) { break; } count++; } // Assert Assert.Equal(2, count); }
public void LoadCommandsBeforeUse(string command) { // Arrange var storage = new Mock <ICommandsHistoryStorage>(); storage.Setup(s => s.Load()).Returns(Array.Empty <string>()); var manager = new CommandsHistoryManager(storage.Object); // Act switch (command) { case "prev": manager.TryGetPrevCommand(out string prev); break; case "next": manager.TryGetNextCommand(out string next); break; case "add": manager.AddCommand("command"); break; } // Assert storage.Verify(s => s.Load(), Times.Once()); }
public void NotAddEmptyCommand(string command) { // Arrange var storage = new Mock <ICommandsHistoryStorage>(); storage.Setup(s => s.Load()).Returns(Array.Empty <string>()); var manager = new CommandsHistoryManager(storage.Object); // Act manager.AddCommand(command); // Assert Assert.Equal(0, manager.Count); }
public void ClearElementsWithoutLoadingFromStorage() { // Arrange var storage = new Mock <ICommandsHistoryStorage>(); storage.Setup(s => s.Load()).Returns(Array.Empty <string>()); var manager = new CommandsHistoryManager(storage.Object); // Act manager.Clear(); // Assert Assert.Equal(0, manager.Count); storage.Verify(s => s.Load(), Times.Never()); }
public void ClearElements() { // Arrange var storage = new Mock <ICommandsHistoryStorage>(); storage.Setup(s => s.Load()).Returns(new[] { "a", "b", "c" }); var manager = new CommandsHistoryManager(storage.Object); // Act manager.TryGetPrevCommand(out string _); // Force to load from storage manager.Clear(); // Assert Assert.Equal(0, manager.Count); }
public void AddNewCommand() { // Arrange var storage = new Mock <ICommandsHistoryStorage>(); storage.Setup(s => s.Load()).Returns(Array.Empty <string>()); var manager = new CommandsHistoryManager(storage.Object); var expected = "command"; // Act manager.AddCommand(expected); manager.TryGetPrevCommand(out string command); // Assert Assert.Equal(expected, command); }
public void NotExceedMaxCommandsCount() { // Arrange var storage = new Mock <ICommandsHistoryStorage>(); storage.Setup(s => s.Load()).Returns(Array.Empty <string>()); var manager = new CommandsHistoryManager(storage.Object); // Act for (int i = 0; i < manager.MaxCount + 1; i++) { manager.AddCommand("command_" + i); } // Assert Assert.Equal(manager.MaxCount, manager.Count); }
public void GetPrevCommand(int times, string expected) { // Arrange var storage = new Mock <ICommandsHistoryStorage>(); storage.Setup(s => s.Load()).Returns(new[] { "a", "b", "c" }); var manager = new CommandsHistoryManager(storage.Object); // Act string command = null; for (int i = 0; i < times; i++) { manager.TryGetPrevCommand(out command); } // Assert Assert.Equal(expected, command); }