public SideEffectBetweenNestedLinkedSourceTests()
        {
            var loadLinkProtocolBuilder = new LoadLinkProtocolBuilder();

            loadLinkProtocolBuilder.For <LinkedSource>()
            .LoadLinkNestedLinkedSourceById(
                linkedSource => linkedSource.Model.PersonId,
                linkedSource => linkedSource.Person
                )
            .LoadLinkNestedLinkedSourceById(
                linkedSource => linkedSource.Model.PersonGroupId,
                linkedSource => linkedSource.PersonGroup
                );
            loadLinkProtocolBuilder.For <PersonGroupLinkedSource>()
            .LoadLinkReferencesByIds(
                linkedSource => linkedSource.Model.PersonIds,
                linkedSource => linkedSource.People);

            loadLinkProtocolBuilder.For <PersonLinkedSource>()
            .LoadLinkReferenceById(
                linkedSource => linkedSource.Model.SummaryImageId,
                linkedSource => linkedSource.SummaryImage);
            _sut = (LoadLinkProtocol)loadLinkProtocolBuilder.Build(
                () => null //not required
                );
        }
示例#2
0
        public PolymorphicTest()
        {
            var loadLinkProtocolBuilder = new LoadLinkProtocolBuilder();

            loadLinkProtocolBuilder.For <LinkedSource>()
            .LoadLinkPolymorphic(
                linkedSource => linkedSource.Model.PolyRef,
                linkedSource => linkedSource.Poly,
                link => link.Kind,
                includes => includes.Include <PersonLinkedSource>().AsNestedLinkedSourceById(
                    "person-nested",
                    link => (string)link.Value)
                .Include <PersonLinkedSource>().AsNestedLinkedSourceFromModel(
                    "person-sub",
                    link => (Person)link.Value)
                .Include <Image>().AsReferenceById(
                    "img",
                    link => (string)link.Value)
                );
            loadLinkProtocolBuilder.For <PersonLinkedSource>()
            .LoadLinkReferenceById(
                linkedSource => linkedSource.Model.SummaryImageId,
                linkedSource => linkedSource.SummaryImage);
            _sut = (LoadLinkProtocol)loadLinkProtocolBuilder.Build(() => new ReferenceLoaderStub());
        }
示例#3
0
        public SimplestRootLinkedSourceTest()
        {
            var loadLinkProtocolBuilder = new LoadLinkProtocolBuilder();

            loadLinkProtocolBuilder.For <LinkedSource>();
            _sut = (LoadLinkProtocol)loadLinkProtocolBuilder.Build(() => new ReferenceLoaderStub());
        }
示例#4
0
        public void AddDependency(Dependency predecessor, LoadLinkProtocol loadLinkProtocol)
        {
            var dependency = predecessor.Graph.GetOrAdd(ReferenceType, ChildLinkedSourceType);

            predecessor.Before(dependency);

            loadLinkProtocol.AddDependenciesForAllLinkTargets(ChildLinkedSourceType, dependency);
        }
示例#5
0
        public ReferenceTest()
        {
            var loadLinkProtocolBuilder = new LoadLinkProtocolBuilder();

            loadLinkProtocolBuilder.For <LinkedSource>()
            .LoadLinkReferenceById(
                linkedSource => linkedSource.Model.PersonOneId,
                linkedSource => linkedSource.PersonOne)
            .LoadLinkReferenceById(
                linkedSource => linkedSource.Model.PersonTwoId,
                linkedSource => linkedSource.PersonTwo
                );
            _sut = (LoadLinkProtocol)loadLinkProtocolBuilder.Build(() => new ReferenceLoaderStub());
        }
        public TAbstractChildLinkedSource CreateNestedLinkedSourceFromModel(
            TLink link,
            Linker linker,
            TLinkedSource linkedSource,
            int referenceIndex,
            LoadLinkProtocol loadLinkProtocol)
        {
            var childLinkSourceModel = _getNestedLinkedSourceModel(link);

            return((TAbstractChildLinkedSource)(object)linker.CreatePartiallyBuiltLinkedSource(
                       childLinkSourceModel,
                       CreateInitChildLinkedSourceAction(linkedSource, referenceIndex, link)
                       ));
        }
示例#7
0
        public NestedLinkedSourceTest()
        {
            var loadLinkProtocolBuilder = new LoadLinkProtocolBuilder();

            loadLinkProtocolBuilder.For <LinkedSource>()
            .LoadLinkReferenceById(
                linkedSource => linkedSource.Model.PreImageId,
                linkedSource => linkedSource.PreImage)
            .LoadLinkNestedLinkedSourceById(
                linkedSource => linkedSource.Model.PersonId,
                linkedSource => linkedSource.Person
                )
            .LoadLinkReferenceById(
                linkedSource => linkedSource.Model.PostImageId,
                linkedSource => linkedSource.PostImage);
            loadLinkProtocolBuilder.For <PersonLinkedSource>()
            .LoadLinkReferenceById(
                linkedSource => linkedSource.Model.SummaryImageId,
                linkedSource => linkedSource.SummaryImage);
            _sut = (LoadLinkProtocol)loadLinkProtocolBuilder.Build(() => new ReferenceLoaderStub());
        }
示例#8
0
        public SubLinkedSourceTest()
        {
            var loadLinkProtocolBuilder = new LoadLinkProtocolBuilder();

            loadLinkProtocolBuilder.For <LinkedSource>()
            .LoadLinkNestedLinkedSourceFromModel(
                linkedSource => linkedSource.Model.PostThread,
                linkedSource => linkedSource.PostThread
                );
            loadLinkProtocolBuilder.For <PostThreadLinkedSource>()
            .LoadLinkNestedLinkedSourcesFromModels(
                linkedSource => linkedSource.Model.Posts,
                linkedSource => linkedSource.Posts)
            .LoadLinkReferenceById(
                linkedSource => linkedSource.Model.AuthorId,
                linkedSource => linkedSource.Author);
            loadLinkProtocolBuilder.For <PostLinkedSource>()
            .LoadLinkReferenceById(
                linkedSource => linkedSource.Model.SummaryImageId,
                linkedSource => linkedSource.SummaryImage);

            _sut = (LoadLinkProtocol)loadLinkProtocolBuilder.Build(() => new ReferenceLoaderStub());
        }
示例#9
0
        public void AddDependency(Dependency predecessor, LoadLinkProtocol loadLinkProtocol)
        {
            var dependency = predecessor.Graph.GetOrAdd(ReferenceType);

            predecessor.Before(dependency);
        }
        public TAbstractChildLinkedSource CreateNestedLinkedSourceById(TLink link, Linker linker, TLinkedSource linkedSource, int referenceIndex, LoadLinkProtocol loadLinkProtocol)
        {
            var lookupId          = _getLookupId(link);
            var childLinkedSource = linker.CreatePartiallyBuiltLinkedSource <TChildLinkedSource, TChildLinkedSourceModel, TId>(
                lookupId,
                CreateInitChildLinkedSourceAction(linkedSource, referenceIndex, link)
                );

            return((TAbstractChildLinkedSource)(object)childLinkedSource);
        }
示例#11
0
 public void AddDependency(Dependency predecessor, LoadLinkProtocol loadLinkProtocol)
 {
     predecessor.Before(ReferenceType);
 }
 public void AddDependenciesForAllLinkTargets(Dependency predecessor, LoadLinkProtocol loadLinkProtocol)
 {
     loadLinkProtocol.AddDependenciesForAllLinkTargets(ChildLinkedSourceType, predecessor);
 }