예제 #1
0
            public void InvokesDelegates()
            {
                var beforeAll  = false;
                var beforeEach = false;
                var afterAll   = false;
                var afterEach  = false;

                var cluster = new RestCluster();

                cluster.OnBeforeStartAll  = () => { beforeAll = true; };
                cluster.OnBeforeStartEach = srvr => { beforeEach = true; };
                cluster.OnAfterStartAll   = () => { afterAll = true; };
                cluster.OnAfterStartEach  = srvr => { afterEach = true; };

                cluster.Add(Substitute.For <IRestServer>());

                beforeAll.ShouldBeFalse();
                beforeEach.ShouldBeFalse();
                afterAll.ShouldBeFalse();
                afterEach.ShouldBeFalse();

                cluster.StartAll();

                beforeAll.ShouldBeTrue();
                beforeEach.ShouldBeTrue();
                afterAll.ShouldBeTrue();
                afterEach.ShouldBeTrue();
            }
예제 #2
0
            public void InvokesDelegates()
            {
                var beforeAll  = false;
                var beforeEach = false;
                var afterAll   = false;
                var afterEach  = false;

                var server = Substitute.For <IRestServer>();

                server.IsListening.Returns(true);

                var cluster = new RestCluster();

                cluster.OnBeforeStopAll  = () => { beforeAll = true; };
                cluster.OnBeforeStopEach = srvr => { beforeEach = true; };
                cluster.OnAfterStopAll   = () => { afterAll = true; };
                cluster.OnAfterStopEach  = srvr => { afterEach = true; };

                cluster.Add("x", server);
                cluster.StartAll();

                beforeAll.ShouldBeFalse();
                beforeEach.ShouldBeFalse();
                afterAll.ShouldBeFalse();
                afterEach.ShouldBeFalse();

                cluster.StopAll();

                beforeAll.ShouldBeTrue();
                beforeEach.ShouldBeTrue();
                afterAll.ShouldBeTrue();
                afterEach.ShouldBeTrue();
            }
예제 #3
0
            public void DoesNotStopServerWhenClusterHasAlreadyStopped()
            {
                var cluster = new RestCluster();
                var server  = Substitute.For <IRestServer>();

                cluster.Add(server);

                server.DidNotReceive().Start();
            }
예제 #4
0
            public void DoesNotStartsServerUntilClusterStarts()
            {
                var cluster = new RestCluster();
                var server  = Substitute.For <IRestServer>();

                cluster.Add(server);

                server.DidNotReceive().Start();
            }
예제 #5
0
            public void ReturnsServerWhenFound()
            {
                var cluster = new RestCluster();
                var server  = Substitute.For <IRestServer>();

                cluster.Add("x", server);

                cluster.Get("x").ShouldBe(server);
            }
예제 #6
0
            public void StartsServerWhenClusterStarts()
            {
                var cluster = new RestCluster();
                var server  = Substitute.For <IRestServer>();

                cluster.Add(server);
                cluster.StartAll();

                server.Received().Start();
            }
예제 #7
0
            public void DoesNotStopIfClusterHasNotStarted()
            {
                var cluster = new RestCluster();

                var server = Substitute.For <IRestServer>();

                cluster.Add("x", server);

                cluster.Remove("x");
                server.DidNotReceive().Stop();
            }
예제 #8
0
            public void AddStartsWhenClusterIsStarted()
            {
                var cluster = new RestCluster();

                cluster.StartAll();

                var server = Substitute.For <IRestServer>();

                cluster.Add("some", server);

                server.Received().Start();
            }
예제 #9
0
            public void DoesNotStartWhenAlreadyStarted()
            {
                var started = false;
                var cluster = new RestCluster();

                cluster.OnBeforeStartAll = () => { started = !started; };

                cluster.StartAll();
                cluster.StartAll();

                started.ShouldBeTrue();
            }
예제 #10
0
            public void StopsServerWhenClusterStops()
            {
                var cluster = new RestCluster();
                var server  = Substitute.For <IRestServer>();

                server.IsListening.Returns(true);

                cluster.Add(server);
                cluster.StartAll();
                cluster.StopAll();

                server.Received().Stop();
            }
예제 #11
0
            public void StopsServerWhenClusterHasStarted()
            {
                var cluster = new RestCluster();

                cluster.StartAll();

                var server = Substitute.For <IRestServer>();

                cluster.Add("x", server);
                cluster.Remove("x");

                server.Received().Stop();
            }
예제 #12
0
            public void AddWithOutLabel()
            {
                var cluster = new RestCluster();
                var server  = Substitute.For <IRestServer>();

                server.ListenerPrefix.Returns("blah");

                cluster.Add(server);

                cluster.Count.ShouldBe(1);
                cluster["blah"].ShouldNotBeNull();

                server.DidNotReceive().Start();
            }
예제 #13
0
        public void Indexer()
        {
            var cluster = new RestCluster();

            cluster.ShouldNotBeNull();
            cluster.Count.ShouldBe(0);

            using (var server = new RestServer(Substitute.For <IHttpListener>()))
            {
                cluster["first"] = server;
                cluster.Count.ShouldBe(1);
                cluster["first"].ShouldBe(server);
            }
        }
예제 #14
0
            public void RemoveReturnsWhenLabelNotFound()
            {
                var before = false;

                var cluster = new RestCluster();

                cluster.StartAll();

                cluster.OnBeforeStopEach = srvr => { before = true; };

                var server = Substitute.For <IRestServer>();

                cluster.Add("some", server);

                cluster.Remove("non-existent-label");

                before.ShouldBeFalse();
            }
예제 #15
0
            public void AddInvokesDelegatesWhenClusterIsStarted()
            {
                var before = false;
                var after  = false;

                var cluster = new RestCluster();

                cluster.StartAll();

                cluster.OnBeforeStartEach = srvr => { before = true; };
                cluster.OnAfterStartEach  = srvr => { after = true; };

                var server = Substitute.For <IRestServer>();

                cluster.Add("some", server);

                before.ShouldBeTrue();
                after.ShouldBeTrue();
            }
예제 #16
0
            public void ReturnsNullWhenLabelNotFound()
            {
                var cluster = new RestCluster();

                cluster.Get("x").ShouldBeNull();
            }