public void Test()
        {
            var client = new FakeQueueTypedClient();
            var nr     = new FakeNameResolver();

            nr.Add("appsetting1", "val1");
            var host = new HostBuilder()
                       .ConfigureDefaultTestHost <Functions>(b =>
            {
                b.AddExtension(client);
            })
                       .ConfigureServices(s => s.AddSingleton <INameResolver>(nr))
                       .Build();

            host.GetJobHost().Call(typeof(Functions).GetMethod(nameof(Functions.T1)));

            Assert.Equal(6, client._items.Count);

            Assert_IsSpecialData("q1a", client._items[0]);
            Assert_IsSpecialData("val1:q1b", client._items[1]); // attr has prefix
            Assert_Type <DateTime>(DateTime.MaxValue, client._items[2]);
            Assert_IsSpecialData("q2", client._items[3]);
            Assert_IsSpecialData("q3a", client._items[4]);
            Assert_IsSpecialData("q3b", client._items[5]);
        }
Ejemplo n.º 2
0
        public static void NotRecursive()
        {
            var resolver = new FakeNameResolver();

            resolver.Add("one", "1");
            resolver.Add("two", "2");
            resolver.Add("<", "%");
            resolver.Add(">", "%");

            Assert.Equal("1", resolver.ResolveWholeString("%one%"));
            Assert.Equal("12", resolver.ResolveWholeString("%one%%two%"));   // directly adjacent

            Assert.Equal("%one%", resolver.ResolveWholeString("%<%one%>%")); // Not recurisve, only applied once.

            // Failure when resolving a missing item
            Assert.Throws <InvalidOperationException>(() => resolver.ResolveWholeString("%one%_%missing%"));
        }
Ejemplo n.º 3
0
        // Glue to initialize a JobHost with the correct config and invoke the Test method.
        // Config also has the program on it.
        private void TestWorker <TConfig>() where TConfig : IExtensionConfigProvider, ITest <TConfig>, new()
        {
            var prog         = new TConfig();
            var jobActivator = new FakeActivator();

            jobActivator.Add(prog);

            var appSettings = new FakeNameResolver();

            appSettings.Add("y", "123");

            IExtensionConfigProvider ext = prog;
            var host = TestHelpers.NewJobHost <TConfig>(jobActivator, ext, appSettings);

            ITest <TConfig> test = prog;

            test.Test(host);
        }
        public void TestNameResolver()
        {
            var nameResolver = new FakeNameResolver();

            nameResolver.Add("name", "VALUE");

            FunctionDescriptor func = IndexMethod("NameResolver", nameResolver).Item1;

            Assert.NotNull(func);
            var parameters = func.Parameters;

            Assert.Single(parameters);
            ParameterDescriptor firstParameter = parameters.First();

            Assert.Equal("inputs", firstParameter.Name);
            Assert.IsType <BlobParameterDescriptor>(firstParameter);
            BlobParameterDescriptor blobParameter = (BlobParameterDescriptor)firstParameter;

            Assert.Equal(@"input", blobParameter.ContainerName);
            Assert.Equal(@"VALUE", blobParameter.BlobName);
        }
        public void TestObjectArray()
        {
            var client = new FakeQueueTypedClient();
            var nr     = new FakeNameResolver();

            nr.Add("appsetting1", "val1");

            var host = new HostBuilder()
                       .ConfigureDefaultTestHost <Functions>(b =>
            {
                b.AddExtension(client);
            })
                       .ConfigureServices(s => s.AddSingleton <INameResolver>(nr))
                       .Build();

            host.GetJobHost().Call(typeof(Functions).GetMethod(nameof(Functions.ObjectArray)));

            Assert.Equal(2, client._items.Count);
            Assert_IsSpecialData("1", client._items[0]);
            Assert_IsSpecialData("2", client._items[1]);
            client._items.Clear();
        }
Ejemplo n.º 6
0
        public void ConnectionStringAttribute_ResolvesCorrectly()
        {
            ConnectionStrings attr = new ConnectionStrings
            {
                Connection                = "key",
                ConnectionAtRoot          = "rootKey",
                ConnectionWithNestedPath  = "nested:path:key",
                ConnectionOverrideDefault = "overridden",
                ConnectionNameResolver    = "%nameResolver%"
            };

            var config = TestHelpers.CreateInMemoryCollection()
                         .AddSetting("key", "unused")
                         .AddSetting("rootKey", "rootValue")
                         .AddSetting("connectionStrings:key", "connectionStringsValue")
                         .AddSetting("nested:path:key", "nestedPathValue")
                         .AddSetting("nested:path:defaultKey", "nestedPathDefaultValue")
                         .AddSetting("connectionStrings:overridden", "connectionStringsOverriddenValue")
                         .AddSetting("connectionStrings:defaultSetting", "fromConnStr")
                         .AddSetting("defaultSetting", "fromRoot")
                         .AddSetting("connectionStrings:resolved", "fromNameResolver")
                         .BuildConfiguration();

            var nameResolver = new FakeNameResolver();

            nameResolver.Add("nameResolver", "connectionStrings:resolved");
            var cloner = new AttributeCloner <ConnectionStrings>(attr, emptyContract, config, nameResolver);
            var cloned = cloner.GetNameResolvedAttribute();

            Assert.Equal("connectionStringsValue", cloned.Connection);
            Assert.Equal("rootValue", cloned.ConnectionAtRoot);
            Assert.Equal("nestedPathValue", cloned.ConnectionWithNestedPath);
            Assert.Equal("connectionStringsOverriddenValue", cloned.ConnectionOverrideDefault);
            Assert.Equal("nestedPathDefaultValue", cloned.ConnectionWithNestedDefaultPath);
            Assert.Equal("fromConnStr", cloned.ConnectionWithDefault);
            Assert.Equal("fromRoot", cloned.AppSettingWithDefault);
            Assert.Equal("fromNameResolver", cloned.ConnectionNameResolver);
        }
Ejemplo n.º 7
0
        // Glue to initialize a JobHost with the correct config and invoke the Test method.
        // Config also has the program on it.
        private void TestWorker <TConfig>() where TConfig : IExtensionConfigProvider, ITest <TConfig>, new()
        {
            var prog         = new TConfig();
            var jobActivator = new FakeActivator();

            jobActivator.Add(prog);

            var appSettings = new FakeNameResolver();

            appSettings.Add("y", "123");

            IExtensionConfigProvider ext = prog;

            IHost host = new HostBuilder()
                         .ConfigureDefaultTestHost <TConfig>(b =>
            {
                b.AddExtension(ext);
            }, appSettings, jobActivator)
                         .Build();

            ITest <TConfig> test = prog;

            test.Test(host.GetJobHost <TConfig>());
        }