Exemple #1
0
        public void Fetch_cookie_from_dreamcontext_jar_with_local_uri()
        {
            using (DreamHostInfo hostInfo = DreamTestHelper.CreateRandomPortHost(new XDoc("config").Elem("uri.public", "/foo/bar"))) {
                MockServiceInfo    mock    = MockService.CreateMockService(hostInfo);
                List <DreamCookie> cookies = null;
                mock.Service.CatchAllCallback = delegate(DreamContext context, DreamMessage request, Result <DreamMessage> response2) {
                    context.Service.Cookies.Update(new DreamCookie("public", "bar", mock.AtLocalHost.Uri), null);
                    context.Service.Cookies.Update(new DreamCookie("local", "baz", mock.AtLocalMachine.Uri), null);
                    cookies = context.Service.Cookies.Fetch(mock.AtLocalHost.Uri);
                    response2.Return(DreamMessage.Ok());
                };
                mock.AtLocalHost.Post();
                bool foundPublic = false;
                bool foundLocal  = false;
                foreach (DreamCookie cookie in cookies)
                {
                    switch (cookie.Name)
                    {
                    case "public":
                        foundPublic = true;
                        break;

                    case "local":
                        foundLocal = true;
                        break;
                    }
                }
                Assert.IsTrue(foundPublic, "didn't find public");
                Assert.IsTrue(foundLocal, "didn't find local");
            }
        }
Exemple #2
0
 public void FixtureSetup()
 {
     _hostInfo = DreamTestHelper.CreateRandomPortHost(new XDoc("config")
                                                      .Elem("ip", "foo")
                                                      .Elem("ip", "bar"));
     _service1 = MockService.CreateMockService(_hostInfo);
     _service2 = MockService.CreateMockService(_hostInfo);
 }
Exemple #3
0
 public void FixtureSetup()
 {
     _hostInfo = DreamTestHelper.CreateRandomPortHost(new XDoc("config")
         .Elem("ip", "foo:11709")
         .Elem("ip", "bar:47583"));
     _service1 = MockService.CreateMockService(_hostInfo);
     _service2 = MockService.CreateMockService(_hostInfo);
 }
Exemple #4
0
 private MockServiceInfo GetMockService()
 {
     if (_mockService == null)
     {
         _hostInfo    = DreamTestHelper.CreateRandomPortHost(new XDoc("config"));
         _mockService = MockService.CreateMockService(_hostInfo);
     }
     return(_mockService);
 }
Exemple #5
0
 public void SetCookie_header_passed_from_service_to_external_but_rooted_at_external()
 {
     using (DreamHostInfo hostInfo = DreamTestHelper.CreateRandomPortHost(new XDoc("config").Elem("uri.public", "/foo/bar"))) {
         MockServiceInfo mock = MockService.CreateMockService(hostInfo);
         mock.Service.CatchAllCallback = delegate(DreamContext context, DreamMessage request, Result <DreamMessage> response2) {
             DreamMessage msg = DreamMessage.Ok();
             msg.Cookies.Add(DreamCookie.NewSetCookie("foo", "bar", context.Uri.AsPublicUri().WithoutPathQueryFragment()));
             response2.Return(msg);
         };
         mock.AtLocalHost.Post();
         List <DreamCookie> cookies = Plug.GlobalCookies.Fetch(mock.AtLocalHost);
         Assert.AreEqual(1, cookies.Count);
         Assert.AreEqual("/", cookies[0].Path);
     }
 }
Exemple #6
0
 public void SetCookie_header_passed_from_service_to_external_uses_public_uri()
 {
     using (DreamHostInfo hostInfo = DreamTestHelper.CreateRandomPortHost()) {
         MockServiceInfo mock = MockService.CreateMockService(hostInfo);
         mock.Service.CatchAllCallback = delegate(DreamContext context, DreamMessage request, Result <DreamMessage> response2) {
             DreamMessage msg = DreamMessage.Ok();
             msg.Cookies.Add(DreamCookie.NewSetCookie("foo", "bar", context.Uri));
             response2.Return(msg);
         };
         mock.AtLocalHost.Post();
         List <DreamCookie> cookies = Plug.GlobalCookies.Fetch(mock.AtLocalHost);
         Assert.AreEqual(1, cookies.Count);
         Assert.AreEqual(mock.AtLocalHost.Uri, cookies[0].Uri);
     }
 }
Exemple #7
0
 public void SetCookie_header_passed_from_service_over_webrequest_uses_public_uri()
 {
     using (DreamHostInfo hostInfo = DreamTestHelper.CreateRandomPortHost()) {
         MockServiceInfo mock = MockService.CreateMockService(hostInfo);
         mock.Service.CatchAllCallback = delegate(DreamContext context, DreamMessage request, Result <DreamMessage> response2) {
             DreamMessage msg = DreamMessage.Ok();
             msg.Cookies.Add(DreamCookie.NewSetCookie("foo", "bar", context.Uri));
             response2.Return(msg);
         };
         XUri            localUri = mock.AtLocalHost.Uri;
         HttpWebRequest  r        = WebRequest.Create(localUri.ToString()) as HttpWebRequest;
         CookieContainer cookies  = new CookieContainer();
         r.CookieContainer = cookies;
         r.Method          = "GET";
         HttpWebResponse response = (HttpWebResponse)r.GetResponse();
         Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
         Assert.AreEqual(1, response.Cookies.Count);
         Assert.AreEqual("localhost", response.Cookies[0].Domain);
         Assert.AreEqual(mock.AtLocalHost.Uri.Path, response.Cookies[0].Path);
     }
 }
Exemple #8
0
        private void SetupService(bool memorizeAliases)
        {
            DreamHostInfo host;

            if (memorizeAliases)
            {
                host = _hostAliasMemorize = DreamTestHelper.CreateRandomPortHost();
            }
            else
            {
                host = _hostNoAliasMemorize = DreamTestHelper.CreateRandomPortHost(new XDoc("config").Elem("memorize-aliases", false));
            }
            _service     = MockService.CreateMockService(host);
            _calledPaths = new List <string>();
            _service.Service.CatchAllCallback = (context, request, result) => {
                _calledPaths.Add(context.GetSuffixes(UriPathFormat.Original).First());
                var call = context.GetParam("call", null);
                if (!string.IsNullOrEmpty(call))
                {
                    Plug.New(call).Get();
                }
                result.Return(DreamMessage.Ok());
            };
            _external = new XUri("http://external1/").WithPort(_service.AtLocalHost.Uri.Port).At(_service.AtLocalHost.Uri.Segments);
            //_ext2 = new XUri("http://external2/").WithPort(_service.AtLocalHost.Uri.Port).At(_service.AtLocalHost.Uri.Segments);
            _externalCalled = 0;
            MockPlug.Register(_external, (plug, verb, uri, request, response) => {
                _externalCalled++;
                response.Return(DreamMessage.Ok());
            }, 100);
            //_ext2called = 0;
            //MockPlug.Register(_ext2, (plug, verb, uri, request, response) => {
            //    _ext2called++;
            //    response.Return(DreamMessage.Ok());
            //}, 100);
            Plug.New(_external).Get();
            //Plug.New(_ext2).Get();
            //return _calledPaths;
        }
Exemple #9
0
 public void SetCookie_header_passed_between_services_uses_local_uri_on_host_non_root_public_uri()
 {
     using (DreamHostInfo hostInfo = DreamTestHelper.CreateRandomPortHost(new XDoc("config").Elem("uri.public", "/foo/bar"))) {
         MockServiceInfo    mock1   = MockService.CreateMockService(hostInfo);
         MockServiceInfo    mock2   = MockService.CreateMockService(hostInfo);
         List <DreamCookie> cookies = null;
         mock1.Service.CatchAllCallback = delegate(DreamContext context, DreamMessage request, Result <DreamMessage> response2) {
             DreamMessage r = Plug.New(mock2.AtLocalMachine).Post(DreamMessage.Ok());
             cookies = context.Service.Cookies.Fetch(mock2.AtLocalMachine);
             Assert.AreEqual(1, cookies.Count);
             Assert.AreEqual(mock2.AtLocalMachine.Uri, cookies[0].Uri);
             response2.Return(DreamMessage.Ok());
         };
         mock2.Service.CatchAllCallback = delegate(DreamContext context, DreamMessage request, Result <DreamMessage> response2) {
             DreamMessage msg = DreamMessage.Ok();
             msg.Cookies.Add(DreamCookie.NewSetCookie("foo", "bar", context.Uri));
             response2.Return(msg);
         };
         mock1.AtLocalHost.Post();
         Assert.AreEqual(1, cookies.Count);
     }
 }
Exemple #10
0
        public void Can_provide_list_of_args_as_repeated_params_to_feature()
        {
            MockServiceInfo mock = MockService.CreateMockService(_hostInfo);

            mock.Service.CatchAllCallback = delegate(DreamContext context, DreamMessage request, Result <DreamMessage> response2) {
                XDoc msg = new XDoc("ids");
                foreach (KeyValuePair <string, string> kv in context.GetParams())
                {
                    if (kv.Key == "id")
                    {
                        msg.Elem("id", kv.Value);
                    }
                }
                response2.Return(DreamMessage.Ok(msg));
            };
            Plug          p   = mock.AtLocalHost;
            int           n   = 100;
            List <string> ids = new List <string>();

            for (int i = 0; i < n; i++)
            {
                p = p.With("id", i);
                ids.Add(i.ToString());
            }
            DreamMessage result = p.GetAsync().Wait();

            Assert.IsTrue(result.IsSuccessful);
            List <string> seen = new List <string>();

            foreach (XDoc id in result.ToDocument()["id"])
            {
                string v = id.AsText;
                Assert.Contains(v, ids);
                Assert.IsFalse(seen.Contains(v));
                seen.Add(v);
            }
            Assert.AreEqual(ids.Count, seen.Count);
        }
Exemple #11
0
 private MockServiceInfo GetMockService()
 {
     if(_mockService == null) {
         _hostInfo = DreamTestHelper.CreateRandomPortHost(new XDoc("config"));
         _mockService = MockService.CreateMockService(_hostInfo);
     }
     return _mockService;
 }
 public void Setup()
 {
     _s3ClientMock = new Mock<IAmazonS3Client>();
     _clientProxy.Client = _s3ClientMock.Object;
     _mockService = MockService.CreateMockService(_hostInfo);
     _storageRoot = _mockService.Service.Storage.Uri.LastSegment;
 }
 public void Setup()
 {
     _s3ClientMock = null;
     _mockService = MockService.CreateMockServiceWithPrivateStorage(_hostInfo);
     _storageRoot = _mockService.Service.Storage.Uri.LastSegment;
 }
 private void SetupService(bool memorizeAliases)
 {
     DreamHostInfo host;
     if(memorizeAliases) {
         host = _hostAliasMemorize = DreamTestHelper.CreateRandomPortHost();
     } else {
         host = _hostNoAliasMemorize = DreamTestHelper.CreateRandomPortHost(new XDoc("config").Elem("memorize-aliases", false));
     }
     _service = MockService.CreateMockService(host);
     _calledPaths = new List<string>();
     _service.Service.CatchAllCallback = (context, request, result) => {
         _calledPaths.Add(context.GetSuffixes(UriPathFormat.Original).First());
         var call = context.GetParam("call", null);
         if(!string.IsNullOrEmpty(call)) {
             Plug.New(call).Get();
         }
         result.Return(DreamMessage.Ok());
     };
     _external = new XUri("http://external1/").WithPort(_service.AtLocalHost.Uri.Port).At(_service.AtLocalHost.Uri.Segments);
     //_ext2 = new XUri("http://external2/").WithPort(_service.AtLocalHost.Uri.Port).At(_service.AtLocalHost.Uri.Segments);
     _externalCalled = 0;
     MockPlug.Register(_external, (plug, verb, uri, request, response) => {
         _externalCalled++;
         response.Return(DreamMessage.Ok());
     }, 100);
     //_ext2called = 0;
     //MockPlug.Register(_ext2, (plug, verb, uri, request, response) => {
     //    _ext2called++;
     //    response.Return(DreamMessage.Ok());
     //}, 100);
     Plug.New(_external).Get();
     //Plug.New(_ext2).Get();
     //return _calledPaths;
 }