コード例 #1
0
        public void Resolve()
        {
            var instance   = new object();
            var dependency = new InstanceDependency(ClassContracts, instance);

            dependency.GetInstance(null, null).Should().Be(instance);
        }
コード例 #2
0
ファイル: SettingsInstaller.cs プロジェクト: teoadal/velo
        public static DependencyCollection AddEnvironmentSettings(this DependencyCollection dependencies)
        {
            var dependency = new InstanceDependency(SettingsSourceContract, new EnvironmentSource());

            dependencies.Add(dependency);

            return(dependencies);
        }
コード例 #3
0
ファイル: LoggingInstaller.cs プロジェクト: teoadal/velo
        public static DependencyCollection AddDefaultConsoleLogWriter(this DependencyCollection dependencies,
                                                                      LogLevel level = LogLevel.Debug)
        {
            var dependency = new InstanceDependency(LogWriterContracts, new DefaultConsoleWriter(level));

            dependencies.Add(dependency);

            return(dependencies);
        }
コード例 #4
0
        public void BeApplicableByContravariantInterface()
        {
            var contracts  = new[] { typeof(ICommandBehaviour <IMeasureCommand>) };
            var dependency = new InstanceDependency(contracts, new object());

            var contravariantInterface = typeof(ICommandBehaviour <TestsModels.Emitting.Boos.Create.Command>);

            dependency.Applicable(contravariantInterface).Should().BeTrue();
        }
コード例 #5
0
        public void BeApplicableByClass()
        {
            var dependency = new InstanceDependency(ClassContracts, new object());

            foreach (var contract in ClassContracts)
            {
                dependency.Applicable(contract).Should().BeTrue();
            }
        }
コード例 #6
0
        public void NotBeApplicableByContravariantInterface()
        {
            var contracts  = new[] { typeof(ICommandBehaviour <IMeasureCommand>) };
            var dependency = new InstanceDependency(contracts, new object());

            var contravariantInterface = typeof(ICommandBehaviour <ICommand>);

            dependency.Applicable(contravariantInterface).Should().BeFalse();
        }
コード例 #7
0
ファイル: SettingsInstaller.cs プロジェクト: teoadal/velo
        public static DependencyCollection AddJsonSettings(this DependencyCollection dependencies,
                                                           string path = "appsettings.json", bool required = false)
        {
            var dependency = new InstanceDependency(SettingsSourceContract, new JsonFileSource(path, required));

            dependencies.Add(dependency);

            return(dependencies);
        }
コード例 #8
0
ファイル: SettingsInstaller.cs プロジェクト: teoadal/velo
        public static DependencyCollection AddCommandLineSettings(this DependencyCollection dependencies,
                                                                  string[] commandLineArgs)
        {
            var dependency = new InstanceDependency(SettingsSourceContract, new CommandLineSource(commandLineArgs));

            dependencies.Add(dependency);

            return(dependencies);
        }
コード例 #9
0
        public DependencyProvider BuildProvider()
        {
            var provider = new DependencyProvider(_engine);

            var providerContracts  = new[] { Typeof <DependencyProvider> .Raw, Typeof <IServiceProvider> .Raw };
            var providerDependency = new InstanceDependency(providerContracts, provider);

            _engine.AddDependency(providerDependency);

            return(provider);
        }
コード例 #10
0
ファイル: LoggingInstaller.cs プロジェクト: teoadal/velo
        public static DependencyCollection AddDefaultFileLogWriter(this DependencyCollection dependencies,
                                                                   string?filePath = null, LogLevel level = LogLevel.Debug)
        {
            filePath ??= $"{AppDomain.CurrentDomain.FriendlyName}.log";

            var dependency = new InstanceDependency(LogWriterContracts, new DefaultFileWriter(filePath, level));

            dependencies.Add(dependency);

            return(dependencies);
        }
コード例 #11
0
 public TestController(
     IFakeDependencyMocked dependencyMocked,
     IFakeDependencyInjected dependencyInjected,
     IImplementedDependency implementedDependency,
     InstanceDependency instanceDependency)
 {
     this.dependencyInjected    = dependencyInjected;
     this.implementedDependency = implementedDependency;
     this.instanceDependency    = instanceDependency;
     this.dependencyMocked      = dependencyMocked;
 }
コード例 #12
0
ファイル: ECSInstaller.cs プロジェクト: teoadal/velo
        public static DependencyCollection AddAssets(this DependencyCollection dependencies,
                                                     IEntitySource <Asset> assetSource)
        {
            if (assetSource == null)
            {
                throw Error.Null(nameof(assetSource));
            }

            var dependency = new InstanceDependency(AssetSourceContracts, assetSource);

            dependencies.Add(dependency);

            return(dependencies);
        }
コード例 #13
0
        public void BeApplicableByInterface()
        {
            var contracts = new[] {
                typeof(MeasureBehaviour),
                typeof(ICommandBehaviour <IMeasureCommand>)
            };

            var dependency = new InstanceDependency(contracts, new object());

            foreach (var contract in contracts)
            {
                dependency.Applicable(contract).Should().BeTrue();
            }
        }
コード例 #14
0
ファイル: ECSInstaller.cs プロジェクト: teoadal/velo
        public static DependencyCollection AddAssets(
            this DependencyCollection dependencies,
            Func <IEntitySourceContext <Asset>, IEnumerable <Asset> > assets)
        {
            if (assets == null)
            {
                throw Error.Null(nameof(assets));
            }

            var instance   = new DelegateSource <Asset>(assets);
            var dependency = new InstanceDependency(AssetSourceContracts, instance);

            dependencies.Add(dependency);

            return(dependencies);
        }
コード例 #15
0
        public void NotBeApplicableByClass()
        {
            var dependency = new InstanceDependency(ClassContracts, new object());

            dependency.Applicable(typeof(object)).Should().BeFalse();
        }
コード例 #16
0
        public void HasValidContracts()
        {
            var dependency = new InstanceDependency(ClassContracts, new object());

            dependency.Contracts.Should().Contain(ClassContracts);
        }