コード例 #1
0
        public void ConnectionDetailsOptionsShouldBeDefinedInConnectionProviderOptions()
        {
            ConnectionDetails         details        = new ConnectionDetails();
            ConnectionProviderOptions optionMetadata = ConnectionProviderOptionsHelper.BuildConnectionProviderOptions();

            var index = 0;
            var expectedForStrings = "Value for strings";
            var expectedForInt     = 345;

            details.ApplicationIntent    = expectedForStrings + index++;
            details.ApplicationName      = expectedForStrings + index++;
            details.AttachDbFilename     = expectedForStrings + index++;
            details.AuthenticationType   = expectedForStrings + index++;
            details.CurrentLanguage      = expectedForStrings + index++;
            details.DatabaseName         = expectedForStrings + index++;
            details.FailoverPartner      = expectedForStrings + index++;
            details.Password             = expectedForStrings + index++;
            details.ServerName           = expectedForStrings + index++;
            details.TypeSystemVersion    = expectedForStrings + index++;
            details.UserName             = expectedForStrings + index++;
            details.WorkstationId        = expectedForStrings + index++;
            details.ConnectRetryInterval = expectedForInt + index++;
            details.ConnectRetryCount    = expectedForInt + index++;
            details.ConnectTimeout       = expectedForInt + index++;
            details.LoadBalanceTimeout   = expectedForInt + index++;
            details.MaxPoolSize          = expectedForInt + index++;
            details.MinPoolSize          = expectedForInt + index++;
            details.PacketSize           = expectedForInt + index++;
            details.Encrypt = (index++ % 2 == 0);
            details.MultipleActiveResultSets = (index++ % 2 == 0);
            details.MultiSubnetFailover      = (index++ % 2 == 0);
            details.PersistSecurityInfo      = (index++ % 2 == 0);
            details.Pooling                = (index++ % 2 == 0);
            details.Replication            = (index++ % 2 == 0);
            details.TrustServerCertificate = (index++ % 2 == 0);

            if (optionMetadata.Options.Count() != details.Options.Count)
            {
                var optionsNotInMetadata = details.Options.Where(o => !optionMetadata.Options.Any(m => m.Name == o.Key));
                var optionNames          = optionsNotInMetadata.Any() ? optionsNotInMetadata.Select(s => s.Key).Aggregate((i, j) => i + "," + j) : null;
                Assert.True(string.IsNullOrEmpty(optionNames), "Options not in metadata: " + optionNames);
            }
            foreach (var option in details.Options)
            {
                var metadata = optionMetadata.Options.FirstOrDefault(x => x.Name == option.Key);
                Assert.NotNull(metadata);
                if (metadata.ValueType == ConnectionOption.ValueTypeString)
                {
                    Assert.True(option.Value is string);
                }
                else if (metadata.ValueType == ConnectionOption.ValueTypeBoolean)
                {
                    Assert.True(option.Value is bool?);
                }
                else if (metadata.ValueType == ConnectionOption.ValueTypeNumber)
                {
                    Assert.True(option.Value is int?);
                }
            }
        }
コード例 #2
0
 /// <summary>
 /// Handles a request for the capabilities request
 /// </summary>
 internal async Task HandleCapabilitiesRequest(
     CapabilitiesRequest initializeParams,
     RequestContext <CapabilitiesResult> requestContext)
 {
     await requestContext.SendResult(
         new CapabilitiesResult
     {
         Capabilities = new DmpServerCapabilities
         {
             ProtocolVersion       = ServiceHost.ProviderProtocolVersion,
             ProviderName          = ServiceHost.ProviderName,
             ProviderDisplayName   = ServiceHost.ProviderDescription,
             ConnectionProvider    = ConnectionProviderOptionsHelper.BuildConnectionProviderOptions(),
             AdminServicesProvider = AdminServicesProviderOptionsHelper.BuildAdminServicesProviderOptions()
         }
     }
         );
 }