Ejemplo n.º 1
0
        public void GetAssetFromOtherSource()
        {
            var assets  = Many(100, i => CreateAsset(i));
            var sources = Many(10, i => CreateSource(assets.Skip(i * 10).Take(10)));

            const int testAssetId    = 101;
            TestAsset testAsset      = null;
            var       delegateSource = new DelegateSource <Asset>(context =>
            {
                testAsset = new TestAsset(testAssetId, Array.Empty <IComponent>())
                {
                    Reference = context.Get(90)
                };
                return(new[] { testAsset });
            });

            CollectionUtils.Add(ref sources, delegateSource);

            StartEnumeration(sources);

            var actual = (TestAsset)_context
                         .Invoking(context => context.Get(testAssetId))
                         .Should().NotThrow()
                         .Which;

            actual.Should().Be(testAsset);
        }
Ejemplo n.º 2
0
 public bool TryGetSource(ITypeSymbol target, out InstanceSource instanceSource)
 {
     if (_delegateParameters is not null && _delegateParameters.TryGetValue(target, out var delegateParameter))
     {
         instanceSource = delegateParameter;
         return(true);
     }
     if (_instanceSource.TryGetValue(target, out instanceSource))
     {
         return(true);
     }
     if (target is INamedTypeSymbol {
         DelegateInvokeMethod : { ReturnType : { } returnType, Parameters : var parameters }
     } delegateType)
     {
         if (returnType.OriginalDefinition.Equals(_task1Type, SymbolEqualityComparer.Default) ||
             returnType.OriginalDefinition.Equals(_valueTask1Type, SymbolEqualityComparer.Default))
         {
             instanceSource = new DelegateSource(delegateType, ((INamedTypeSymbol)returnType).TypeArguments[0], parameters, isAsync : true);
         }
         else
         {
             instanceSource = new DelegateSource(delegateType, returnType, parameters, isAsync: false);
         }
         return(true);
     }
     return(false);
 }
Ejemplo n.º 3
0
        private void BoxSelectMedia_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (this.isInit == true)
            {
                this.TextBoxSearch.Text = "";
            }

            DelegateSourceClass del = new DelegateSourceClass();

            DelegateSource[] bind = new DelegateSource[4];
            bind[0] = new DelegateSource(del.PlaylistSource);
            bind[1] = new DelegateSource(del.MusicSource);
            bind[2] = new DelegateSource(del.ImageSource);
            bind[3] = new DelegateSource(del.VideoSource);
            if (BoxSelectMedia.SelectedIndex != -1)
            {
                bind[BoxSelectMedia.SelectedIndex](this);
            }
        }
Ejemplo n.º 4
0
        public DelegateSourceShould()
        {
            _context = Mock.Of <IEntitySourceContext <Asset> >();

            _builder = new Mock <Func <IEntitySourceContext <Asset>, IEnumerable <Asset> > >();
            _builder
            .Setup(b => b.Invoke(_context))
            .Returns(Enumerable.Empty <Asset>());

            _source = new DelegateSource <Asset>(_builder.Object);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
 public virtual void Visit(DelegateSource delegateSource, State state)
 {
     VisitCore(GetInstanceSource(delegateSource.ReturnType, state, null), state);
 }