예제 #1
0
        private IntegratedPipelineBlueprint InitializeBlueprint()
        {
            IntegratedPipelineBlueprintStage firstStage = null;

            string appStartup            = ConfigurationManager.AppSettings[Constants.OwinAppStartup];
            var    loader                = new DefaultLoader();
            Action <IAppBuilder> startup = loader.Load(appStartup ?? string.Empty);

            if (startup == null)
            {
                return(null);
            }

            var appContext = OwinBuilder.Build(builder =>
            {
                EnableIntegratedPipeline(builder, stage => firstStage = stage);
                startup.Invoke(builder);
            });

            if (appContext == null)
            {
                return(null);
            }

            string basePath = Utils.NormalizePath(HttpRuntime.AppDomainAppVirtualPath);

            return(new IntegratedPipelineBlueprint(appContext, firstStage, basePath));
        }
        public void An_extra_segment_will_cause_the_match_to_fail()
        {
            var loader = new DefaultLoader();
            var configuration = loader.Load("Owin.Loader.DefaultConfigurationLoaderTests+Hello.Bar");

            Assert.Null(configuration);
        }
예제 #3
0
        public static void Register(string name, Type type, ICustomDeserializer loader = null)
        {
            EnsureConfig();

            // Default loader if none specified
            if (loader == null)
            {
                loader = new DefaultLoader();
            }

            lock (types)
            {
                types[name] = type;
            }

            lock (names)
            {
                names[type] = name;
            }

            lock (builders)
            {
                builders[type] = loader;
            }
        }
예제 #4
0
 public DefaultLoaderTests()
 {
     _settings = new SakeSettings {
         Output = new StringWriter()
     };
     _loader = new DefaultLoader(new DefaultLog(_settings), _settings);
 }
예제 #5
0
        public void Run(IPrinter printer)
        {
            var loader = new DefaultLoader <ILanguage>();

            // we load each group here
            var english = loader
                          .Load(Groups.English);

            var spanish = loader
                          .Load(Groups.Spanish);

            var japanese = loader
                           .Load(Groups.Japanese);

            // each language is under the same interface
            // we can use the same properties to access each
            // making our code very clean

            // Thank you!
            PrintThankYou(english, printer);

            // ¡Gracias!
            PrintThankYou(spanish, printer);

            // ありがと
            PrintThankYou(japanese, printer);
        }
예제 #6
0
        public static void Register(string name, Type type, ICustomDeserializer loader = null)
        {
            EnsureConfig();

            // Default loader if none specified
            if (loader == null)
            {
                loader = new DefaultLoader();
            }

            lock (types)
            {
                if (!types.ContainsKey(name))
                {
                    types.Add(name, type);
                }
            }

            lock (names)
            {
                if (!names.ContainsKey(type))
                {
                    names.Add(type, name);
                }
            }

            lock (builders)
            {
                if (!builders.ContainsKey(type))
                {
                    builders.Add(type, loader);
                }
            }
        }
예제 #7
0
        public void An_extra_segment_will_cause_the_match_to_fail()
        {
            var loader        = new DefaultLoader();
            var configuration = loader.Load("Owin.Loader.DefaultConfigurationLoaderTests+Hello.Bar");

            Assert.Null(configuration);
        }
        public override IEnumerable <object[]> GetData(MethodInfo methodUnderTest, Type[] parameterTypes)
        {
            var makefiles = Directory.GetFiles(Directory.GetCurrentDirectory(), "test-*.shade").Select(Path.GetFileName);
            var settings  = new SakeSettings {
                Output = Console.Out
            };
            var loader = new DefaultLoader(new DefaultLog(settings), settings);

            foreach (var makefile in makefiles)
            {
                IBuilder builder;
                try
                {
                    builder = loader.Load(new Options {
                        Makefile = makefile
                    });
                }
                catch (Exception)
                {
                    builder = null;
                }

                if (builder == null)
                {
                    yield return(new object[] { makefile, null });
                }
                else
                {
                    foreach (var target in builder.Targets.Values.Where(target => target.Name.StartsWith("test-")))
                    {
                        yield return(new object[] { makefile, target.Name });
                    }
                }
            }
        }
        /// <summary>
        /// Register a declarative type with the resource loader system.
        /// </summary>
        /// <param name="kind">the $kind name to map to this type.</param>
        /// <param name="type">type of object to create.</param>
        /// <param name="loader">optional custom deserializer.</param>
        /// <returns>Resource explorer for fluent style multiple calls.</returns>
        public ResourceExplorer RegisterType(string kind, Type type, ICustomDeserializer loader = null)
        {
            // Default loader if none specified
            if (loader == null)
            {
                loader = new DefaultLoader();
            }

            lock (kinds)
            {
                kinds[kind] = type;
            }

            lock (names)
            {
                names[type] = kind;
            }

            lock (builders)
            {
                builders[type] = loader;
            }

            return(this);
        }
예제 #10
0
        internal static OwinAppContext Build()
        {
            string appStartup            = ConfigurationManager.AppSettings[Constants.OwinAppStartup];
            var    loader                = new DefaultLoader();
            Action <IAppBuilder> startup = loader.Load(appStartup ?? string.Empty);

            return(Build(startup));
        }
예제 #11
0
 public void Strings_are_split_based_on_dots()
 {
     string[] strings = DefaultLoader.DotByDot("this.is.a.test").ToArray();
     Assert.Equal(4, strings.Length);
     Assert.Equal("this.is.a.test", strings[0]);
     Assert.Equal("this.is.a", strings[1]);
     Assert.Equal("this.is", strings[2]);
     Assert.Equal("this", strings[3]);
 }
        public void An_extra_segment_will_cause_the_match_to_fail()
        {
            var loader = new DefaultLoader();
            IList<string> errors = new List<string>();
            Action<IAppBuilder> configuration = loader.Load("Owin.Loader.Tests.DefaultConfigurationLoaderTests.Hello.Bar", errors);

            Assert.Null(configuration);
            Assert.NotEmpty(errors);
        }
예제 #13
0
        public void An_extra_segment_will_cause_the_match_to_fail()
        {
            var                  loader        = new DefaultLoader();
            IList <string>       errors        = new List <string>();
            Action <IAppBuilder> configuration = loader.Load("Owin.Loader.Tests.DefaultConfigurationLoaderTests.Hello.Bar", errors);

            Assert.Null(configuration);
            Assert.NotEmpty(errors);
        }
예제 #14
0
        public void Load_will_find_assembly_and_type_and_static_method()
        {
            var loader        = new DefaultLoader();
            var configuration = loader.Load("Owin.Loader.Tests.DefaultConfigurationLoaderTests.Hello");

            _helloCalls = 0;
            configuration(new AppBuilder());
            Assert.Equal(1, _helloCalls);
        }
        public void Startup_inferred_given_assembly_name()
        {
            var loader        = new DefaultLoader();
            var configuration = loader.Load("Owin.Loader.Tests");

            Startup.ConfigurationCalls = 0;
            configuration(new AppBuilder());
            Assert.Equal(1, Startup.ConfigurationCalls);
        }
        public void Load_will_find_assembly_and_type_and_static_method()
        {
            var loader = new DefaultLoader();
            var configuration = loader.Load("Owin.Loader.Tests.DefaultConfigurationLoaderTests.Hello");

            _helloCalls = 0;
            configuration(new AppBuilder());
            Assert.Equal(1, _helloCalls);
        }
예제 #17
0
        public void Load_will_find_assembly_and_type_and_static_method()
        {
            IList <string>       errors        = new List <string>();
            var                  loader        = new DefaultLoader();
            Action <IAppBuilder> configuration = loader.Load("Owin.Loader.Tests.DefaultConfigurationLoaderTests.Hello", errors);

            _helloCalls = 0;
            configuration(new AppBuilder());
            Assert.Equal(1, _helloCalls);
        }
예제 #18
0
        public void Friendly_Name_Startup_Configuration_Attribute_will_be_discovered()
        {
            IList <string>       errors        = new List <string>();
            var                  loader        = new DefaultLoader();
            Action <IAppBuilder> configuration = loader.Load("AFrienDlyName", errors);

            Startup.ConfigurationCalls = 0;
            configuration(new AppBuilder());
            Assert.Equal(1, Startup.ConfigurationCalls);
        }
예제 #19
0
        public void Friendly_Name_Used_To_Find_Alternate_Config_Method()
        {
            IList <string>       errors        = new List <string>();
            var                  loader        = new DefaultLoader();
            Action <IAppBuilder> configuration = loader.Load("AlternateConfiguraTION", errors);

            Startup.AlternateConfigurationCalls = 0;
            configuration(new AppBuilder());
            Assert.Equal(1, Startup.AlternateConfigurationCalls);
        }
        public void Load_will_find_assembly_and_type_and_static_method()
        {
            IList<string> errors = new List<string>();
            var loader = new DefaultLoader();
            Action<IAppBuilder> configuration = loader.Load("Owin.Loader.Tests.DefaultConfigurationLoaderTests.Hello", errors);

            _helloCalls = 0;
            configuration(new AppBuilder());
            Assert.Equal(1, _helloCalls);
        }
예제 #21
0
        public void Different_OwinStartupAttribute_Definition_Works()
        {
            IList <string>       errors        = new List <string>();
            var                  loader        = new DefaultLoader();
            Action <IAppBuilder> configuration = loader.Load("AlternaTeStartupAtTribute", errors);

            _helloCalls = 0;
            configuration(new AppBuilder());
            Assert.Equal(1, _helloCalls);
        }
예제 #22
0
        public void Comma_may_be_used_if_assembly_name_doesnt_match_namespace()
        {
            var loader        = new DefaultLoader();
            var configuration = loader.Load("DifferentNamespace.DoesNotFollowConvention, Owin.Loader.Tests");

            DoesNotFollowConvention.ConfigurationCalls = 0;

            configuration(new AppBuilder());

            Assert.Equal(1, DoesNotFollowConvention.ConfigurationCalls);
        }
        private void SetDefaultLoadingViewBindings()
        {
            if (TaskLoaderNotifier == null)
            {
                return;
            }

            DefaultLoader?.SetBinding(
                ActivityIndicator.IsRunningProperty,
                new Binding(nameof(TaskLoaderNotifier.ShowLoader), source: TaskLoaderNotifier));
        }
예제 #24
0
        public void MakefileTarget(string makefile, string target)
        {
            var settings = new SakeSettings {
                Output = new RemoveEscapes(Console.Out)
            };
            var loader = new DefaultLoader(new DefaultLog(settings), settings);
            var engine = new SakeEngine(settings, loader, new DefaultRunner());

            engine.Execute(new Options {
                Makefile = makefile, Targets = new[] { target }
            });
        }
예제 #25
0
        private static void Main()
        {
            var runtimeTypeSource = RuntimeTypeSource.FromAttributes(Assemblies.AssembliesInAppFolder);
            var loader            = new DefaultLoader(runtimeTypeSource);

            var model = (Zoo)loader.FromPath("Model.xaml", new Settings {
                InstanceLifeCycleListener = new MyListener()
            });
            var byName = model.Find("Rocky");

            Console.WriteLine("Loaded model:\n{0}", model);
            Console.WriteLine($"Searching an animal by name in this namescope (Zoo instance): \n\tRocky => {byName}");
            Console.ReadLine();
        }
예제 #26
0
        public void Method_that_returns_app_action_may_also_be_called()
        {
            var loader        = new DefaultLoader();
            var configuration = loader.Load("Owin.Loader.Tests.DefaultConfigurationLoaderTests.Alpha");

            var builder = new AppBuilder();

            configuration(builder);
            var app = builder.Build <AppFunc>();

            _alphaCalls = 0;
            app(new Dictionary <string, object>());
            Assert.Equal(1, _alphaCalls);
        }
예제 #27
0
        public void Startup_Configuration_in_assembly_namespace_will_be_discovered_by_default()
        {
            var loader        = new DefaultLoader();
            var configuration = loader.Load(string.Empty);

            Startup.ConfigurationCalls = 0;
            configuration(new AppBuilder());
            Assert.Equal(1, Startup.ConfigurationCalls);

            configuration = loader.Load(null);
            Startup.ConfigurationCalls = 0;
            configuration(new AppBuilder());
            Assert.Equal(1, Startup.ConfigurationCalls);
        }
예제 #28
0
        public void Startup_Configuration_Attribute_will_be_discovered_by_default()
        {
            IList <string>       errors        = new List <string>();
            var                  loader        = new DefaultLoader();
            Action <IAppBuilder> configuration = loader.Load(string.Empty, errors);

            Startup.ConfigurationCalls = 0;
            configuration(new AppBuilder());
            Assert.Equal(1, Startup.ConfigurationCalls);

            configuration = loader.Load(null, errors);
            Startup.ConfigurationCalls = 0;
            configuration(new AppBuilder());
            Assert.Equal(1, Startup.ConfigurationCalls);
        }
예제 #29
0
        public static void DeleteAllImagesFromCache()
        {
            if (Directory.Exists(PicDir))
            {
                foreach (var file in Directory.GetFiles(PicDir))
                {
                    File.Delete(file);
                }
            }

            if (DefaultLoader != null)
            {
                DefaultLoader.PurgeCache();
            }
        }
예제 #30
0
        public void Leading_and_trailing_dot_and_empty_strings_are_safe_and_ignored()
        {
            string[] string1 = DefaultLoader.DotByDot(".a.test").ToArray();
            string[] string2 = DefaultLoader.DotByDot("a.test.").ToArray();
            string[] string3 = DefaultLoader.DotByDot(".a.test.").ToArray();
            string[] string4 = DefaultLoader.DotByDot(".").ToArray();
            string[] string5 = DefaultLoader.DotByDot(string.Empty).ToArray();
            string[] string6 = DefaultLoader.DotByDot(null).ToArray();

            AssertArrayEqual(new[] { "a.test", "a" }, string1);
            AssertArrayEqual(new[] { "a.test", "a" }, string2);
            AssertArrayEqual(new[] { "a.test", "a" }, string3);
            AssertArrayEqual(new string[0], string4);
            AssertArrayEqual(new string[0], string5);
            AssertArrayEqual(new string[0], string6);
        }
예제 #31
0
        public void Run(IPrinter printer)
        {
            var loader = new DefaultLoader <ILanguage>();

            var english = loader
                          .Load(Groups.English);

            var spanish = loader
                          .Load(Groups.Spanish);

            // writes "Hello!" even though we never put English on it
            printer.Print(english.Hello);

            // properly writes ¡Hola!
            printer.Print(spanish.Hello);
        }
예제 #32
0
        public void Configuration_method_defaults_to_Configuration_if_only_type_name_is_provided()
        {
            IList <string>       errors        = new List <string>();
            var                  loader        = new DefaultLoader();
            Action <IAppBuilder> configuration = loader.Load("Owin.Loader.Tests.DefaultConfigurationLoaderTests+MultiConfigs", errors);

            MultiConfigs.FooCalls           = 0;
            MultiConfigs.BarCalls           = 0;
            MultiConfigs.ConfigurationCalls = 0;

            configuration(new AppBuilder());

            Assert.Equal(0, MultiConfigs.FooCalls);
            Assert.Equal(0, MultiConfigs.BarCalls);
            Assert.Equal(1, MultiConfigs.ConfigurationCalls);
        }
예제 #33
0
        public void Comma_may_be_used_if_assembly_name_doesnt_match_namespace()
        {
            IList <string>       errors                 = new List <string>();
            var                  loader                 = new DefaultLoader();
            Action <IAppBuilder> configuration          = loader.Load("DifferentNamespace.DoesNotFollowConvention, Owin.Loader.Tests", errors);
            Action <IAppBuilder> alternateConfiguration = loader.Load("DifferentNamespace.DoesNotFollowConvention.AlternateConfiguration, Owin.Loader.Tests", errors);

            DoesNotFollowConvention.ConfigurationCalls          = 0;
            DoesNotFollowConvention.AlternateConfigurationCalls = 0;

            configuration(new AppBuilder());
            Assert.Equal(1, DoesNotFollowConvention.ConfigurationCalls);
            Assert.Equal(0, DoesNotFollowConvention.AlternateConfigurationCalls);
            alternateConfiguration(new AppBuilder());
            Assert.Equal(1, DoesNotFollowConvention.ConfigurationCalls);
            Assert.Equal(1, DoesNotFollowConvention.AlternateConfigurationCalls);
        }
예제 #34
0
        internal static Action <IAppBuilder> GetAppStartup()
        {
            string appStartup = ConfigurationManager.AppSettings[Constants.OwinAppStartup];

            var                  loader  = new DefaultLoader(new ReferencedAssembliesWrapper());
            IList <string>       errors  = new List <string>();
            Action <IAppBuilder> startup = loader.Load(appStartup ?? string.Empty, errors);

            if (startup == null)
            {
                throw new EntryPointNotFoundException(Resources.Exception_AppLoderFailure
                                                      + Environment.NewLine + " - " + string.Join(Environment.NewLine + " - ", errors)
                                                      + (IsAutomaticAppStartupEnabled ? Environment.NewLine + Resources.Exception_HowToDisableAutoAppStartup : string.Empty)
                                                      + Environment.NewLine + Resources.Exception_HowToSpecifyAppStartup);
            }
            return(startup);
        }
        public void Calling_a_class_with_multiple_configs_is_okay()
        {
            var loader = new DefaultLoader();
            var foo = loader.Load("Owin.Loader.Tests.DefaultConfigurationLoaderTests+MultiConfigs.Foo");
            var bar = loader.Load("Owin.Loader.Tests.DefaultConfigurationLoaderTests+MultiConfigs.Bar");

            MultiConfigs.FooCalls = 0;
            MultiConfigs.BarCalls = 0;

            Assert.NotNull(foo);
            Assert.NotNull(bar);

            foo(new AppBuilder());

            Assert.Equal(1, MultiConfigs.FooCalls);
            Assert.Equal(0, MultiConfigs.BarCalls);

            bar(new AppBuilder());

            Assert.Equal(1, MultiConfigs.FooCalls);
            Assert.Equal(1, MultiConfigs.BarCalls);
        }
        public void Method_that_returns_app_action_may_also_be_called()
        {
            IList<string> errors = new List<string>();
            var loader = new DefaultLoader();
            Action<IAppBuilder> configuration = loader.Load("Owin.Loader.Tests.DefaultConfigurationLoaderTests.Alpha", errors);

            var builder = new AppBuilder();
            configuration(builder);
            var app = builder.Build<AppFunc>();

            _alphaCalls = 0;
            app(new Dictionary<string, object>());
            Assert.Equal(1, _alphaCalls);
        }
 public void Friendly_Name_Startup_Configuration_Attribute_will_be_discovered()
 {
     IList<string> errors = new List<string>();
     var loader = new DefaultLoader();
     Action<IAppBuilder> configuration = loader.Load("AFrienDlyName", errors);
     Startup.ConfigurationCalls = 0;
     configuration(new AppBuilder());
     Assert.Equal(1, Startup.ConfigurationCalls);
 }
 public void Friendly_Name_Used_To_Find_Alternate_Config_Method()
 {
     IList<string> errors = new List<string>();
     var loader = new DefaultLoader();
     Action<IAppBuilder> configuration = loader.Load("AlternateConfiguraTION", errors);
     Startup.AlternateConfigurationCalls = 0;
     configuration(new AppBuilder());
     Assert.Equal(1, Startup.AlternateConfigurationCalls);
 }
        public void Startup_Configuration_in_assembly_namespace_will_be_discovered_by_default()
        {
            var loader = new DefaultLoader();
            var configuration = loader.Load(string.Empty);
            Startup.ConfigurationCalls = 0;
            configuration(new AppBuilder());
            Assert.Equal(1, Startup.ConfigurationCalls);

            configuration = loader.Load(null);
            Startup.ConfigurationCalls = 0;
            configuration(new AppBuilder());
            Assert.Equal(1, Startup.ConfigurationCalls);
        }
        public void Comma_may_be_used_if_assembly_name_doesnt_match_namespace()
        {
            var loader = new DefaultLoader();
            var configuration = loader.Load("DifferentNamespace.DoesNotFollowConvention, Owin.Loader.Tests");

            DoesNotFollowConvention.ConfigurationCalls = 0;

            configuration(new AppBuilder());

            Assert.Equal(1, DoesNotFollowConvention.ConfigurationCalls);
        }
 public void Different_OwinStartupAttribute_Definition_Works()
 {
     IList<string> errors = new List<string>();
     var loader = new DefaultLoader();
     Action<IAppBuilder> configuration = loader.Load("AlternaTeStartupAtTribute", errors);
     _helloCalls = 0;
     configuration(new AppBuilder());
     Assert.Equal(1, _helloCalls);
 }
        public void Startup_Configuration_Attribute_will_be_discovered_by_default()
        {
            IList<string> errors = new List<string>();
            var loader = new DefaultLoader();
            Action<IAppBuilder> configuration = loader.Load(string.Empty, errors);
            Startup.ConfigurationCalls = 0;
            configuration(new AppBuilder());
            Assert.Equal(1, Startup.ConfigurationCalls);

            configuration = loader.Load(null, errors);
            Startup.ConfigurationCalls = 0;
            configuration(new AppBuilder());
            Assert.Equal(1, Startup.ConfigurationCalls);
        }
        public void Comma_may_be_used_if_assembly_name_doesnt_match_namespace()
        {
            IList<string> errors = new List<string>();
            var loader = new DefaultLoader();
            Action<IAppBuilder> configuration = loader.Load("DifferentNamespace.DoesNotFollowConvention, Owin.Loader.Tests", errors);
            Action<IAppBuilder> alternateConfiguration = loader.Load("DifferentNamespace.DoesNotFollowConvention.AlternateConfiguration, Owin.Loader.Tests", errors);

            DoesNotFollowConvention.ConfigurationCalls = 0;
            DoesNotFollowConvention.AlternateConfigurationCalls = 0;

            configuration(new AppBuilder());
            Assert.Equal(1, DoesNotFollowConvention.ConfigurationCalls);
            Assert.Equal(0, DoesNotFollowConvention.AlternateConfigurationCalls);
            alternateConfiguration(new AppBuilder());
            Assert.Equal(1, DoesNotFollowConvention.ConfigurationCalls);
            Assert.Equal(1, DoesNotFollowConvention.AlternateConfigurationCalls);
        }
 public void Startup_inferred_given_assembly_name()
 {
     var loader = new DefaultLoader();
     var configuration = loader.Load("Owin.Loader.Tests");
     Startup.ConfigurationCalls = 0;
     configuration(new AppBuilder());
     Assert.Equal(1, Startup.ConfigurationCalls);
 }
        public void Configuration_method_defaults_to_Configuration_if_only_type_name_is_provided()
        {
            IList<string> errors = new List<string>();
            var loader = new DefaultLoader();
            Action<IAppBuilder> configuration = loader.Load("Owin.Loader.Tests.DefaultConfigurationLoaderTests+MultiConfigs", errors);

            MultiConfigs.FooCalls = 0;
            MultiConfigs.BarCalls = 0;
            MultiConfigs.ConfigurationCalls = 0;

            configuration(new AppBuilder());

            Assert.Equal(0, MultiConfigs.FooCalls);
            Assert.Equal(0, MultiConfigs.BarCalls);
            Assert.Equal(1, MultiConfigs.ConfigurationCalls);
        }