public TextEditorService(Func <string, Func <HttpListenerRequest, string>, AbstractServer> createServer, Action waiter, Action <string> logger, string[] lines) { storage = new SafeStorage(lines); server = createServer("http://localhost:80/", GetResponse); this.waiter = waiter; this.logger = logger; }
public void TestSimpleActions() { var lines = new[] { "abc", "aba" }; var storage = new SafeStorage(lines); Assert.AreEqual(new Tuple <int, string>(0, "az"), storage.ReplaceFirst("bc", "z")); Assert.AreEqual(new Tuple <int, string>(0, "zz"), storage.ReplaceFirst("a", "z")); Assert.AreEqual(new Tuple <int, string>(1, "ba"), storage.ReplaceFirst("a", "")); Assert.AreEqual(new Tuple <int, string>(0, ""), storage.ReplaceFirst("zz", "")); }
public void Set_ShouldCall_OriginSet() { // Arrange const string value = "John Doe Set"; var storage = new SafeStorage <string>(_origin); // Act storage.Set(value); // Assert _origin.Received().Set(value); }
public void Get_ShouldPass_UnexpectedException() { // Arrange _origin.When(x => x.Get()).Do(_ => throw new Exception()); ((IThrowsExpectedExceptions)_origin).IsExpectedException(Arg.Any <Exception>()).Returns(false); var storage = new SafeStorage <string>(_origin); // Act Action action = () => storage.Get(); // Assert action.Should().Throw <Exception>(); }
public void Get_ShouldBe_OriginGet() { // Arrange const string expected = "John Doe"; _origin.Get().Returns(expected); var storage = new SafeStorage <string>(_origin); // Act var result = storage.Get(); // Assert result.Should().Be(expected); }
public void TestOneThreadRun() { var lines = new string[(int)1e5]; for (int i = 0; i < lines.Length; i++) { lines[i] = random.GenerateRandomWord(10, 3); } var storage = new SafeStorage(lines); for (int i = 0; i < (int)2e6; i++) { storage.ReplaceFirst(random.GenerateRandomWord(3, 3), random.GenerateRandomWord(3, 3)); } }
public void Get_ShouldBeNull_WhenOriginThrows_ExpectedException() { // Arrange var exception = new Exception(); _origin.When(x => x.Get()).Do(_ => throw exception); ((IThrowsExpectedExceptions)_origin).IsExpectedException(exception).Returns(true); var storage = new SafeStorage <string>(_origin); // Act var result = storage.Get(); // Assert result.Should().BeNull(); }
public void Set_ShouldIgnore_ExpectedException() { // Arrange var exception = new Exception(); _origin.When(x => x.Set(Arg.Any <string>())).Do(_ => throw exception); ((IThrowsExpectedExceptions)_origin).IsExpectedException(exception).Returns(true); var storage = new SafeStorage <string>(_origin); // Act Action action = () => storage.Set("ABC"); // Assert action.Should().NotThrow(); }
public void TestMultiThreadRun() { var lines = new string[(int)2e5]; for (int i = 0; i < lines.Length; i++) { lines[i] = random.GenerateRandomWord(10, 3); } var storage = new SafeStorage(lines); var tasks = new List <Task>(); for (int i = 0; i < (int)2e6; i++) { var task = new Task(() => storage.ReplaceFirst( random.GenerateRandomWord(3, 3), random.GenerateRandomWord(3, 3))); task.Start(); tasks.Add(task); } Task.WaitAll(tasks.ToArray()); }