Exemple #1
0
        private void BuildInfo(StorageEngine storageEngine, string user, string password, string server, string database)
        {
            this.storageEngine = storageEngine;
            if (!string.IsNullOrEmpty(server) && !string.IsNullOrEmpty(database))
            {
                //string protocol = DBProvider.ProtocolMappings[storageEngine].Item1;
                //string protocol = DBProvider.GetProtocolMapping(storageEngine).Item1;
                string protocol        = storageEngine.Key;
                bool   userIsSpecified = !string.IsNullOrEmpty(user);
                bool   passIsSpecified = !string.IsNullOrEmpty(password);
                authenticationType = userIsSpecified ? AuthenticationType.SqlServer : AuthenticationType.Windows;
                string url = string.Format("{0}://{1}{2}{3}{4}{5}/{6}",
                                           protocol,
                                           user,
                                           passIsSpecified ? ":" : string.Empty,
                                           userIsSpecified ? password : string.Empty,
                                           userIsSpecified ? "@" : string.Empty,
                                           server,
                                           database);
                UrlInfo urlInfo = UrlInfo.Parse(url);

                this.internalInfo = new global::Xtensive.Core.ConnectionInfo(urlInfo);
            }
            else
            {
                this.internalInfo = null;
            }
        }
Exemple #2
0
        protected virtual void TestFixtureSetUp()
        {
            var parsedUrl = UrlInfo.Parse(Url);

            Driver     = TestSqlDriver.Create(parsedUrl);
            Connection = Driver.CreateConnection();
            Connection.Open();
        }
Exemple #3
0
 public static HttpRequestMessage BaseAddress(this HttpRequestMessage req, string baseAddress)
 {
     return(req.Pipe(r =>
     {
         r.RequestUri = r.RequestUri != null
                 ? UrlInfo.Parse(r.RequestUri.ToString()).Append(baseAddress).ToUri()
                 : UrlInfo.Parse(baseAddress).ToUri();
     }));
 }
Exemple #4
0
 public static HttpRequestMessage QueryParams <T>(this HttpRequestMessage req, T queryParams)
 {
     return(req.Pipe(r =>
     {
         r.RequestUri = r.RequestUri != null
             ? UrlInfo.Parse(r.RequestUri.ToString()).AppendQueryParameters(queryParams).ToUri()
             : new UrlInfo().AppendQueryParameters(queryParams).ToUri();
     }));
 }
Exemple #5
0
 public static HttpRequestMessage Path(this HttpRequestMessage req, string path)
 {
     return(req.Pipe(r =>
     {
         r.RequestUri = r.RequestUri != null
             ? UrlInfo.Parse(r.RequestUri.ToString()).Append(path).ToUri()
             : UrlInfo.Parse(path).ToUri();
     }));
 }
Exemple #6
0
        public void OverwrittenConnectionTest()
        {
            var domainConfig = DomainConfigurationFactory.Create();

            domainConfig.Types.Register(typeof(TestEntity));
            domainConfig.DefaultSchema = "dbo";
            domainConfig.UpgradeMode   = DomainUpgradeMode.Recreate;

            var domainConnectionUrlString = domainConfig.ConnectionInfo.ConnectionUrl.ToString();
            var parametersPosition        = domainConnectionUrlString.IndexOf('?');

            var nodeConfig = new NodeConfiguration("Additional");

            nodeConfig.UpgradeMode    = DomainUpgradeMode.Recreate;
            nodeConfig.ConnectionInfo = new ConnectionInfo(UrlInfo.Parse(domainConnectionUrlString.Substring(0, parametersPosition)));
            nodeConfig.SchemaMapping.Add("dbo", "Model1");

            void commandValidator(object sender, DbCommandEventArgs args)
            {
                var session = ((SessionEventAccessor)sender).Session;

                if (session.StorageNodeId == WellKnown.DefaultNodeId)
                {
                    Assert.That(args.Command.CommandText.Contains("[dbo].[ConnectionOverrideTest.TestEntity]"), Is.True);
                }
                else
                {
                    Assert.That(args.Command.CommandText.Contains("[Model1].[ConnectionOverrideTest.TestEntity]"), Is.True);
                }
            }

            using (var domain = Domain.Build(domainConfig)) {
                using (var session = domain.OpenSession())
                    using (var tx = session.OpenTransaction()) {
                        var connection = ((SqlSessionHandler)session.Handler).Connection;
                        Assert.That(connection.ConnectionInfo, Is.EqualTo(domainConfig.ConnectionInfo));
                        _ = new TestEntity(session);
                        session.Events.DbCommandExecuted += commandValidator;
                        session.SaveChanges();
                        session.Events.DbCommandExecuted -= commandValidator;
                    }

                _ = domain.StorageNodeManager.AddNode(nodeConfig);
                var selectedNode = domain.StorageNodeManager.GetNode(nodeConfig.NodeId);
                using (var session = selectedNode.OpenSession())
                    using (var tx = session.OpenTransaction()) {
                        var connection = ((SqlSessionHandler)session.Handler).Connection;
                        Assert.That(connection.ConnectionInfo, Is.Not.EqualTo(domainConfig.ConnectionInfo));

                        _ = new TestEntity(session);
                        session.Events.DbCommandExecuted += commandValidator;
                        session.SaveChanges();
                        session.Events.DbCommandExecuted -= commandValidator;
                    }
            }
        }
        public void CombinedTest()
        {
            UrlInfo a1 = UrlInfo.Parse("tcp://*****:*****@someHost:1000/someUrl/someUrl?someParameter=someValue&someParameter2=someValue2");
            UrlInfo a2 = UrlInfo.Parse("tcp://*****:*****@someHost:1000/someUrl/someUrl?someParameter=someValue&someParameter2=someValue2");
            UrlInfo aX = UrlInfo.Parse("tcp://*****:*****@someHost:1000/someUrl/someUrl?someParameter2=someValue2&someParameter=someValue");
            UrlInfo b  = UrlInfo.Parse("tcp://*****:*****@someHost:1000/someUrl/someUrl");

            Assert.IsTrue(a1.GetHashCode() == a2.GetHashCode());
            Assert.IsTrue(a1.GetHashCode() != aX.GetHashCode());
            Assert.IsTrue(a1.GetHashCode() != b.GetHashCode());

            Assert.IsTrue(a1.Equals(a2));
            Assert.IsFalse(a1.Equals(aX));
            Assert.IsFalse(a1.Equals(b));
        }
Exemple #8
0
        public void ConnectionUrlTest()
        {
            var url = UrlInfo.Parse("sqlserver://appserver/AdventureWorks?Connection Timeout=5");

            Assert.AreEqual(url.Protocol, "sqlserver");
            Assert.AreEqual(url.Host, "appserver");
            Assert.AreEqual(url.Resource, "AdventureWorks");

            url = UrlInfo.Parse("sqlserver://localhost/database");
            Assert.AreEqual("database", url.GetDatabase());
            Assert.AreEqual("default schema", url.GetSchema("default schema"));

            url = UrlInfo.Parse("sqlserver://localhost/database/");
            Assert.AreEqual("database", url.GetDatabase());
            Assert.AreEqual("default schema", url.GetSchema("default schema"));

            url = UrlInfo.Parse("sqlserver://localhost/database/schema");
            Assert.AreEqual("database", url.GetDatabase());
            Assert.AreEqual("schema", url.GetSchema(string.Empty));

            url = UrlInfo.Parse("sqlserver://localhost/database/schema/");
            Assert.AreEqual("database", url.GetDatabase());
            Assert.AreEqual("schema", url.GetSchema(string.Empty));
        }
Exemple #9
0
        public void Should_append_base_path_to_relative_url()
        {
            var url = UrlInfo.Parse("users").Append("http://www.vg.no").ToString();

            url.Should().Be("http://www.vg.no/users");
        }
Exemple #10
0
 public void Should_append_path_to_relative_URI_while_removing_leading_and_trailing_slashes()
 {
     UrlInfo.Parse("/users").Append("kv").Append("foo").Append("bar/")
     .AppendQueryParameters(new { foobar = 42 })
     .ToString().Should().Be("users/kv/foo/bar?foobar=42");
 }
Exemple #11
0
 public void Should_append_path_to_relative_URI()
 {
     UrlInfo.Parse("users").Append("kv").Append("foo").Append("bar")
     .AppendQueryParameters(new { foobar = 42 })
     .ToString().Should().Be("users/kv/foo/bar?foobar=42");
 }
Exemple #12
0
 public void Should_append_path_to_URI()
 {
     UrlInfo.Parse("https://consul.io/v1").Append("kv").Append("foo").Append("bar")
     .AppendQueryParameters(new { foobar = 42 })
     .ToString().Should().Be("https://consul.io/v1/kv/foo/bar?foobar=42");
 }
Exemple #13
0
 public void Should_append_path_to_URI()
 {
     UrlInfo.Parse("https://consul.io/v1").Append("kv").Append("foo").Append("bar")
     .ToString().Should().Be("https://consul.io/v1/kv/foo/bar");
 }