Esempio n. 1
0
 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;
 }
Esempio n. 2
0
        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", ""));
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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>();
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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));
            }
        }
Esempio n. 7
0
        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();
        }
Esempio n. 8
0
        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();
        }
Esempio n. 9
0
        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());
        }