示例#1
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);
 }
示例#2
0
 private MockServiceInfo GetMockService()
 {
     if (_mockService == null)
     {
         _hostInfo    = DreamTestHelper.CreateRandomPortHost(new XDoc("config"));
         _mockService = MockService.CreateMockService(_hostInfo);
     }
     return(_mockService);
 }
示例#3
0
 //--- Constructors ---
 public TestScriptService(DreamHostInfo hostinfo) {
     _hostinfo = hostinfo;
     MockPlug.Register(_manifestUri, (p, v, u, r, r2) => r2.Return(DreamMessage.Ok(_manifest)));
     _manifest = new XDoc("extension")
         .Elem("title", "Function Test Extension")
         .Elem("label", "test")
         .Elem("namespace", "test")
         .Start("requires").Attr("host", "MindTouch Core 10.0").End();
 }
 public void FixtureSetup() {
     var builder = new ContainerBuilder();
     builder.Register(c => _searchBLFactory()).As<ISearchBL>().RequestScoped();
     _hostInfo = DreamTestHelper.CreateRandomPortHost(new XDoc("config").Elem("apikey", Utils.Settings.ApiKey), builder.Build());
     _hostInfo.Host.Self.At("load").With("name", "mindtouch.deki").Post(DreamMessage.Ok());
     _hostInfo.Host.Self.At("load").With("name", "mindtouch.deki.services").Post(DreamMessage.Ok());
     _hostInfo.Host.Self.At("load").With("name", "mindtouch.indexservice").Post(DreamMessage.Ok());
     _deki = DreamTestHelper.CreateService(_hostInfo, Utils.Settings.DekiConfig);
     _search = _deki.AtLocalHost.At("site", "query");
 }
示例#5
0
 public void Init()
 {
     _config = new AwsS3ClientConfig {
         Endpoint = AwsTestHelpers.AWS,
         Bucket = "bucket",
         RootPath = "root/path",
         PrivateKey = "private",
         PublicKey = "public",
     };
     _hostInfo = DreamTestHelper.CreateRandomPortHost();
 }
 //--- Constructors ---
 public ScriptTestHarness() {
     _hostInfo = DreamTestHelper.CreateRandomPortHost();
     _hostInfo.Host.Self.At("load").With("name", "mindtouch.deki.services").Post(DreamMessage.Ok());
     _hostInfo.Host.Self.At("load").With("name", "mindtouch.deki").Post(DreamMessage.Ok());
     _hostInfo.Host.Self.At("load").With("name", "mindtouch.deki.script.check").Post(DreamMessage.Ok());
     XDoc config = new XDoc("config")
         .Elem("sid", "sid://mindtouch.com/2008/09/script-test")
         .Elem("path", SCRIPT_TEST_ROOT)
         .Elem("debug", true);
     _hostInfo.Host.Self.At("services").Post(config);
 }
示例#7
0
        public void Init()
        {
            _hostInfo = DreamTestHelper.CreateRandomPortHost();
            _hostInfo.Host.Self.At("load").With("name", "test.mindtouch.dream").Post(DreamMessage.Ok());
            var config = new XDoc("config")
                         .Elem("path", "test")
                         .Elem("sid", "sid://mindtouch.com/DreamContextTestService");
            DreamMessage result = _hostInfo.LocalHost.At("host", "services").With("apikey", _hostInfo.ApiKey).PostAsync(config).Wait();

            Assert.IsTrue(result.IsSuccessful, result.ToText());
            _plug = Plug.New(_hostInfo.LocalHost.Uri.WithoutQuery()).At("test");
            DreamContextTestService.ContextVar = null;
        }
示例#8
0
        public void Init()
        {
            _hostInfo = DreamTestHelper.CreateRandomPortHost();
            _hostInfo.Host.Self.At("load").With("name", "test.mindtouch.dream").Post(DreamMessage.Ok());
            var config = new XDoc("config")
                         .Elem("path", "test")
                         .Elem("sid", "http://services.mindtouch.com/dream/test/2010/07/featuretestserver");
            DreamMessage result = _hostInfo.LocalHost.At("host", "services").With("apikey", _hostInfo.ApiKey).PostAsync(config).Wait();

            Assert.IsTrue(result.IsSuccessful, result.ToText());
            _plug      = Plug.New(_hostInfo.LocalHost.Uri.WithoutQuery()).At("test");
            _blueprint = _plug.At("@blueprint").Get().ToDocument();
        }
示例#9
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);
     }
 }
示例#10
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);
     }
 }
示例#11
0
        public void Init()
        {
            var builder = new ContainerBuilder();

            builder.RegisterType <Foo>().As <IFoo>().RequestScoped();
            _hostInfo = DreamTestHelper.CreateRandomPortHost(new XDoc("config"), builder.Build(ContainerBuildOptions.None));
            _hostInfo.Host.Self.At("load").With("name", "test.mindtouch.dream").Post(DreamMessage.Ok());
            var config = new XDoc("config")
                         .Elem("path", "test")
                         .Elem("sid", "http://services.mindtouch.com/dream/test/2010/07/featuretestserver");
            DreamMessage result = _hostInfo.LocalHost.At("host", "services").With("apikey", _hostInfo.ApiKey).Post(config, new Result <DreamMessage>()).Wait();

            Assert.IsTrue(result.IsSuccessful, result.ToText());
            _plug      = Plug.New(_hostInfo.LocalHost.Uri.WithoutQuery()).At("test");
            _blueprint = _plug.At("@blueprint").Get().ToDocument();
        }
示例#12
0
        /// <summary>
        /// Create a <see cref="IDreamService"/> on a given <see cref="DreamHost"/>.
        /// </summary>
        /// <param name="hostInfo">The info instance for the target <see cref="DreamHost"/>.</param>
        /// <param name="config">Configuration to use for service instantiation.</param>
        /// <returns>An instance of <see cref="DreamServiceInfo"/> for easy service access</returns>
        public static DreamServiceInfo CreateService(this DreamHostInfo hostInfo, XDoc config)
        {
            string       path   = config["path"].AsText;
            DreamMessage result = hostInfo.Host.Self.At("services").Post(config, new Result <DreamMessage>()).Wait();

            if (!result.IsSuccessful)
            {
                throw new Exception(string.Format(
                                        "Unable to start service with config:\r\n{0}\r\n{1}",
                                        config.ToPrettyString(),
                                        result.HasDocument
                        ? string.Format("{0}: {1}", result.Status, result.ToDocument()["message"].AsText)
                        : result.Status.ToString()));
            }
            return(new DreamServiceInfo(hostInfo, path, result.ToDocument()));
        }
示例#13
0
        /// <summary>
        /// Create a <see cref="IDreamService"/> on a given <see cref="DreamHost"/>.
        /// </summary>
        /// <param name="hostInfo">The info instance for the target <see cref="DreamHost"/>.</param>
        /// <param name="sid">Service Identifier</param>
        /// <param name="pathPrefix">Path prefix to use for randomly generated path (primarily used to more easily recognize the service in logs).</param>
        /// <param name="extraConfig">Additional configuration to use for service instantiation.</param>
        /// <returns>An instance of <see cref="DreamServiceInfo"/> for easy service access</returns>
        public static DreamServiceInfo CreateService(this DreamHostInfo hostInfo, string sid, string pathPrefix, XDoc extraConfig)
        {
            string path   = (string.IsNullOrEmpty(pathPrefix)) ? StringUtil.CreateAlphaNumericKey(6).ToLower() : pathPrefix + "_" + StringUtil.CreateAlphaNumericKey(3).ToLower();
            XDoc   config = new XDoc("config")
                            .Elem("sid", sid)
                            .Elem("path", path);

            if (extraConfig != null)
            {
                foreach (XDoc extra in extraConfig["*"])
                {
                    config.Add(extra);
                }
            }
            return(CreateService(hostInfo, config));
        }
示例#14
0
        /// <summary>
        /// Create a new mock service instance.
        /// </summary>
        /// <param name="hostInfo">Host info.</param>
        /// <param name="extraConfig">Additional service configuration.</param>
        /// <param name="privateStorage">Use private storage</param>
        /// <returns>New mock service info instance.</returns>
        public static MockServiceInfo CreateMockService(DreamHostInfo hostInfo, XDoc extraConfig, bool privateStorage)
        {
            var path   = StringUtil.CreateAlphaNumericKey(8);
            var type   = privateStorage ? typeof(MockServiceWithPrivateStorage) : typeof(MockService);
            var config = new XDoc("config")
                         .Elem("class", type.FullName)
                         .Elem("path", path);

            if (extraConfig != null)
            {
                foreach (var extra in extraConfig["*"])
                {
                    config.Add(extra);
                }
            }
            hostInfo.Host.Self.At("services").Post(config);
            _log.DebugFormat("path: {0}", path);
            return(new MockServiceInfo(hostInfo, path, MockRegister[path]));
        }
示例#15
0
        public static void GlobalSetup(TestContext testContext)
        {
            var config = new XDoc("config");

        	var instances = new XDoc("instances")
        		.Start("instance").Attr("webhost", "test.foiremuses.org").Attr("databaseName", "foiremusesxml").End();

            var builder = new ContainerBuilder();
            theMockUserController = new MockUserController();
            builder.Register(c => theMockUserController).As<IUserController>().ServiceScoped();
            _hostInfo = DreamTestHelper.CreateRandomPortHost(config, builder.Build());
            _hostInfo.Host.Self.At("load").With("name", "foiremuses.webservice").Post(DreamMessage.Ok());
            _service = DreamTestHelper.CreateService(
                _hostInfo,
                "http://foiremuses.org/service",
                "foiremuses",
                instances
            );
            _plug = _service.WithInternalKey().AtLocalHost;
        }
示例#16
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);
     }
 }
示例#17
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);
     }
 }
示例#18
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;
        }
示例#19
0
 public void GlobalSetup()
 {
     var config = new XDoc("config");
     var builder = new ContainerBuilder();
     _smtpClientFactory = new SmtpClientFactoryMock();
     builder.Register(c => _smtpClientFactory).As<ISmtpClientFactory>().ServiceScoped();
     _hostInfo = DreamTestHelper.CreateRandomPortHost(config, builder.Build(ContainerBuildOptions.Default));
     _emailService = DreamTestHelper.CreateService(
         _hostInfo,
         "sid://mindtouch.com/2009/01/dream/email",
         "email",
         new XDoc("config")
             .Elem("apikey", "servicekey")
             .Elem("smtp-host", DEFAULT_HOST)
     );
     _plug = _emailService.WithInternalKey().AtLocalHost;
 }
示例#20
0
 public void Init()
 {
     _hostInfo = DreamTestHelper.CreateRandomPortHost();
     _parent = DreamTestHelper.CreateService(_hostInfo, typeof(InheritanceParent), "parent");
     _child = DreamTestHelper.CreateService(_hostInfo, typeof(InheritanceChild), "child");
 }
示例#21
0
 public void Init()
 {
     _hostInfo = DreamTestHelper.CreateRandomPortHost();
     _hostInfo.Host.Self.At("load").With("name", "test.mindtouch.dream").Post(DreamMessage.Ok());
     var config = new XDoc("config")
        .Elem("path", "test")
        .Elem("sid", "http://services.mindtouch.com/dream/test/2010/07/featuretestserver");
     DreamMessage result = _hostInfo.LocalHost.At("host", "services").With("apikey", _hostInfo.ApiKey).PostAsync(config).Wait();
     Assert.IsTrue(result.IsSuccessful, result.ToText());
     _plug = Plug.New(_hostInfo.LocalHost.Uri.WithoutQuery()).At("test");
     _blueprint = _plug.At("@blueprint").Get().ToDocument();
 }
示例#22
0
 //--- Constructors ---
 internal DreamServiceInfo(DreamHostInfo hostInfo, string path, XDoc serviceResponse)
 {
     _internalSetCookie = serviceResponse["internal-key/set-cookie"];
     _privateSetCookie = serviceResponse["private-key/set-cookie"];
     AtLocalHost = Plug.New(hostInfo.LocalHost.At(path));
 }
示例#23
0
 public void Init()
 {
     var builder = new ContainerBuilder();
     builder.RegisterType<Foo>().As<IFoo>().RequestScoped();
     _hostInfo = DreamTestHelper.CreateRandomPortHost(new XDoc("config"), builder.Build(ContainerBuildOptions.None));
     _hostInfo.Host.Self.At("load").With("name", "test.mindtouch.dream").Post(DreamMessage.Ok());
     var config = new XDoc("config")
        .Elem("path", "test")
        .Elem("sid", "http://services.mindtouch.com/dream/test/2010/07/featuretestserver");
     DreamMessage result = _hostInfo.LocalHost.At("host", "services").With("apikey", _hostInfo.ApiKey).Post(config, new Result<DreamMessage>()).Wait();
     Assert.IsTrue(result.IsSuccessful, result.ToText());
     _plug = Plug.New(_hostInfo.LocalHost.Uri.WithoutQuery()).At("test");
     _blueprint = _plug.At("@blueprint").Get().ToDocument();
 }
 public void Init()
 {
     var root = "rootpath";
     var config = new XDoc("config")
         .Start("storage")
             .Attr("type", "s3")
             .Elem("root", root)
             .Elem("bucket", "bucket")
             .Elem("privatekey", "private")
             .Elem("publickey", "public")
         .End();
     var builder = new ContainerBuilder();
     builder.Register((c, p) => {
         var s3Config = p.TypedAs<AmazonS3ClientConfig>();
         Assert.AreEqual(root, s3Config.RootPath);
         Assert.AreEqual("http://s3.amazonaws.com", s3Config.S3BaseUri.ToString());
         Assert.AreEqual("bucket", s3Config.Bucket);
         Assert.AreEqual("private", s3Config.PrivateKey);
         Assert.AreEqual("public", s3Config.PublicKey);
         Assert.IsNull(_s3ClientMock, "storage already resolved");
         _clientProxy = new AmazonS3ClientProxy();
         return _clientProxy;
     }).As<IAmazonS3Client>().ServiceScoped();
     _hostInfo = DreamTestHelper.CreateRandomPortHost(config, builder.Build());
 }
示例#25
0
 /// <summary>
 /// Create a new mock service instance with private storage.
 /// </summary>
 /// <param name="hostInfo">Host info.</param>
 /// <returns>New mock service info instance.</returns>
 public static MockServiceInfo CreateMockServiceWithPrivateStorage(DreamHostInfo hostInfo)
 {
     return CreateMockService(hostInfo, null, true);
 }
示例#26
0
 /// <summary>
 /// Create a new mock service instance.
 /// </summary>
 /// <param name="hostInfo">Host info.</param>
 /// <returns>New mock service info instance.</returns>
 public static MockServiceInfo CreateMockService(DreamHostInfo hostInfo)
 {
     return CreateMockService(hostInfo, null, false);
 }
示例#27
0
 public void FixtureSetup()
 {
     _hostInfo = DreamTestHelper.CreateRandomPortHost();
     _serviceInfo = DreamTestHelper.CreateService(_hostInfo, typeof(TestExceptionalService), "test");
 }
示例#28
0
 public void Init()
 {
     _hostinfo = DreamTestHelper.CreateRandomPortHost(new XDoc("config").Elem("dream.in.authtoken", "abc"));
     _host     = _hostinfo.LocalHost.At("host").With("apikey", _hostinfo.ApiKey);
 }
示例#29
0
 /// <summary>
 /// Create a new mock service instance.
 /// </summary>
 /// <param name="hostInfo">Host info.</param>
 /// <returns>New mock service info instance.</returns>
 public static MockServiceInfo CreateMockService(this DreamHostInfo hostInfo)
 {
     return(MockService.CreateMockService(hostInfo));
 }
 public void FixtureSetup()
 {
     _hostInfo    = DreamTestHelper.CreateRandomPortHost();
     _serviceInfo = DreamTestHelper.CreateService(_hostInfo, typeof(TestExceptionalService), "test");
 }
示例#31
0
 /// <summary>
 /// Create a new mock service instance.
 /// </summary>
 /// <param name="hostInfo">Host info.</param>
 /// <param name="extraConfig">Additional service configuration.</param>
 /// <returns>New mock service info instance.</returns>
 public static MockServiceInfo CreateMockService(this DreamHostInfo hostInfo, XDoc extraConfig)
 {
     return(MockService.CreateMockService(hostInfo, extraConfig));
 }
示例#32
0
 public void PerTestCleanup() {
     MockPlug.DeregisterAll();
     _hostInfo = null;
     _log.Debug("cleaned up");
 }
示例#33
0
 public void Init()
 {
     _hostinfo = DreamTestHelper.CreateRandomPortHost();
     _host     = _hostinfo.LocalHost.At("host").With("apikey", _hostinfo.ApiKey);
 }
示例#34
0
 //--- Static Methods ---
 /// <summary>
 /// Create a new mock service instance.
 /// </summary>
 /// <param name="hostInfo">Host info.</param>
 /// <param name="extraConfig">Additional service configuration.</param>
 /// <returns>New mock service info instance.</returns>
 public static MockServiceInfo CreateMockService(DreamHostInfo hostInfo, XDoc extraConfig)
 {
     return CreateMockService(hostInfo, extraConfig, false);
 }
示例#35
0
 /// <summary>
 /// Create a <see cref="IDreamService"/> on a given <see cref="DreamHost"/>.
 /// </summary>
 /// <typeparam name="T">The <see cref="IDreamService"/> to create.</typeparam>
 /// <param name="hostInfo">The info instance for the target <see cref="DreamHost"/>.</param>
 /// <param name="pathPrefix">Path prefix to use for randomly generated path (primarily used to more easily recognize the service in logs).</param>
 /// <returns>An instance of <see cref="DreamServiceInfo"/> for easy service access</returns>
 public static DreamServiceInfo CreateService <T>(this DreamHostInfo hostInfo, string pathPrefix) where T : IDreamService
 {
     return(CreateService(hostInfo, typeof(T), pathPrefix));
 }
示例#36
0
 /// <summary>
 /// Create a new mock service instance.
 /// </summary>
 /// <param name="hostInfo">Host info.</param>
 /// <param name="extraConfig">Additional service configuration.</param>
 /// <param name="privateStorage">Use private storage</param>
 /// <returns>New mock service info instance.</returns>
 public static MockServiceInfo CreateMockService(DreamHostInfo hostInfo, XDoc extraConfig, bool privateStorage)
 {
     var path = StringUtil.CreateAlphaNumericKey(8);
     var type = privateStorage ? typeof(MockServiceWithPrivateStorage) : typeof(MockService);
     var config = new XDoc("config")
         .Elem("class", type.FullName)
         .Elem("path", path);
     if(extraConfig != null) {
         foreach(var extra in extraConfig["*"]) {
             config.Add(extra);
         }
     }
     hostInfo.Host.Self.At("services").Post(config);
     _log.DebugFormat("path: {0}", path);
     return new MockServiceInfo(hostInfo, path, MockRegister[path]);
 }
示例#37
0
 public void ShutdownHost() {
     lock(padlock) {
         if(_hostInfo != null) {
             _hostInfo.Dispose();
             _hostInfo = null;
         }
     }
 }
示例#38
0
 /// <summary>
 /// Create a new mock service instance.
 /// </summary>
 /// <param name="hostInfo">Host info.</param>
 /// <returns>New mock service info instance.</returns>
 public static MockServiceInfo CreateMockService(DreamHostInfo hostInfo)
 {
     return(CreateMockService(hostInfo, null, false));
 }
示例#39
0
 public void Init()
 {
     var config = new XDoc("config")
         .Start("storage")
             .Attr("type", "s3")
             .Elem("root", "rootpath")
             .Elem("bucket", "bucket")
             .Elem("privatekey", "private")
             .Elem("publickey", "public")
         .End();
     var builder = new ContainerBuilder();
     builder.Register((c, p) => {
         var s3Config = p.TypedAs<AwsS3ClientConfig>();
         _rootPath = s3Config.RootPath;
         Assert.AreEqual("default", s3Config.Endpoint.Name);
         Assert.AreEqual("bucket", s3Config.Bucket);
         Assert.AreEqual("private", s3Config.PrivateKey);
         Assert.AreEqual("public", s3Config.PublicKey);
         Assert.IsNull(_s3ClientMock, "storage already resolved");
         _s3ClientMock = new Mock<IAwsS3Client>();
         return _s3ClientMock.Object;
     }).As<IAwsS3Client>().ServiceScoped();
     _hostInfo = DreamTestHelper.CreateRandomPortHost(config, builder.Build());
 }
示例#40
0
 /// <summary>
 /// Create a new mock service instance with private storage.
 /// </summary>
 /// <param name="hostInfo">Host info.</param>
 /// <returns>New mock service info instance.</returns>
 public static MockServiceInfo CreateMockServiceWithPrivateStorage(DreamHostInfo hostInfo)
 {
     return(CreateMockService(hostInfo, null, true));
 }
示例#41
0
 public void Init()
 {
     _hostInfo = DreamTestHelper.CreateRandomPortHost();
     _parent   = DreamTestHelper.CreateService(_hostInfo, typeof(InheritanceParent), "parent");
     _child    = DreamTestHelper.CreateService(_hostInfo, typeof(InheritanceChild), "child");
 }
示例#42
0
        //--- Static Methods ---

        /// <summary>
        /// Create a new mock service instance.
        /// </summary>
        /// <param name="hostInfo">Host info.</param>
        /// <param name="extraConfig">Additional service configuration.</param>
        /// <returns>New mock service info instance.</returns>
        public static MockServiceInfo CreateMockService(DreamHostInfo hostInfo, XDoc extraConfig)
        {
            return(CreateMockService(hostInfo, extraConfig, false));
        }
示例#43
0
 public void Init()
 {
     _hostInfo = DreamTestHelper.CreateRandomPortHost();
     _hostInfo.Host.Self.At("load").With("name", "test.mindtouch.dream").Post(DreamMessage.Ok());
 }
示例#44
0
 public void Init()
 {
     _hostinfo = DreamTestHelper.CreateRandomPortHost();
     _host = _hostinfo.LocalHost.At("host").With("apikey", _hostinfo.ApiKey);
 }
示例#45
0
 public void Init()
 {
     var config = new XDoc("config");
     var builder = new ContainerBuilder();
     builder.Register((c, p) => {
         var s3Config = p.TypedAs<AmazonS3ClientConfig>();
         var mock = new Mock<IAmazonS3Client>();
         Assert.AreEqual("test", s3Config.RootPath);
         Assert.AreEqual("http://s3.amazonaws.com",s3Config.S3BaseUri.ToString());
         Assert.AreEqual("test-bucket", s3Config.Bucket);
         Assert.AreEqual("test-private", s3Config.PrivateKey);
         Assert.AreEqual("test-public", s3Config.PublicKey);
         Assert.IsNull(_s3ClientMock, "test storage already resolved");
         _s3ClientMock = mock;
         return mock.Object;
     }).As<IAmazonS3Client>().ServiceScoped();
     _hostInfo = DreamTestHelper.CreateRandomPortHost(config, builder.Build());
 }
示例#46
0
 //--- Constructors ---
 internal DreamServiceInfo(DreamHostInfo hostInfo, string path, XDoc serviceResponse)
 {
     _internalSetCookie = serviceResponse["internal-key/set-cookie"];
     _privateSetCookie  = serviceResponse["private-key/set-cookie"];
     AtLocalHost        = Plug.New(hostInfo.LocalHost.At(path));
 }
示例#47
0
 public void PerTestSetup() {
     _hostInfo = DreamTestHelper.CreateRandomPortHost();
 }
示例#48
0
 public void Init()
 {
     _hostinfo = DreamTestHelper.CreateRandomPortHost(new XDoc("config").Elem("dream.in.authtoken", "abc"));
     _host = _hostinfo.LocalHost.At("host").With("apikey", _hostinfo.ApiKey);
 }
示例#49
0
 public void Init()
 {
     _hostInfo = DreamTestHelper.CreateRandomPortHost();
     _hostInfo.Host.Self.At("load").With("name", "test.mindtouch.dream").Post(DreamMessage.Ok());
     var config = new XDoc("config")
        .Elem("path", "test")
        .Elem("sid", "sid://mindtouch.com/DreamContextTestService");
     DreamMessage result = _hostInfo.LocalHost.At("host", "services").With("apikey", _hostInfo.ApiKey).PostAsync(config).Wait();
     Assert.IsTrue(result.IsSuccessful, result.ToText());
     _plug = Plug.New(_hostInfo.LocalHost.Uri.WithoutQuery()).At("test");
     DreamContextTestService.ContextVar = null;
 }
示例#50
0
 public void Init()
 {
     _hostInfo = DreamTestHelper.CreateRandomPortHost();
     _hostInfo.Host.Self.At("load").With("name", "test.mindtouch.dream").Post(DreamMessage.Ok());
 }
示例#51
0
 public void Init()
 {
     _folder = Path.GetTempPath();
     Directory.CreateDirectory(_folder);
     _storageFolder = Path.Combine(Path.GetTempPath(), StringUtil.CreateAlphaNumericKey(6));
     Directory.CreateDirectory(_storageFolder);
     XDoc config = new XDoc("config").Elem("service-dir", _folder);
     _hostInfo = DreamTestHelper.CreateRandomPortHost(config);
     CreatePrivateStorageServiceProxy();
 }
示例#52
0
 public void GlobalSetup()
 {
     _hostInfo = DreamTestHelper.CreateRandomPortHost();
     _queueService = DreamTestHelper.CreateService(_hostInfo, "sid://mindtouch.com/2009/12/dream/queue", "queue", new XDoc("config").Elem("folder", Path.GetTempPath()));
     _plug = _queueService.WithInternalKey().AtLocalHost;
 }
 public void FixtureSetup() {
     _hostInfo = DreamTestHelper.CreateRandomPortHost(new XDoc("config").Elem("apikey", "123"));
     _hostInfo.Host.Self.At("load").With("name", "mindtouch.deki.services").Post(DreamMessage.Ok());
 }
示例#54
0
 /// <summary>
 /// Create a new mock service instance.
 /// </summary>
 /// <param name="hostInfo">Host info.</param>
 /// <param name="extraConfig">Additional service configuration.</param>
 /// <param name="privateStorage">Use private storage</param>
 /// <returns>New mock service info instance.</returns>
 public static MockServiceInfo CreateMockService(this DreamHostInfo hostInfo, XDoc extraConfig, bool privateStorage)
 {
     return(MockService.CreateMockService(hostInfo, extraConfig, privateStorage));
 }
示例#55
0
 private MockServiceInfo GetMockService()
 {
     if(_mockService == null) {
         _hostInfo = DreamTestHelper.CreateRandomPortHost(new XDoc("config"));
         _mockService = MockService.CreateMockService(_hostInfo);
     }
     return _mockService;
 }
示例#56
0
 public void Init()
 {
     _hostinfo = DreamTestHelper.CreateRandomPortHost(new XDoc("config").Elem("dream.in.authtoken", "abc"));
 }