예제 #1
0
 public void ModifiesMain()
 {
     container.AddTag(new Tag4());
     Assert.True(main.HasTag <Tag4>());
     Assert.True(container.RemoveTag <Tag4>());
     Assert.False(main.HasTag <Tag4>());
 }
예제 #2
0
        public static IBuiltPipeline Get(ITagContainer diContainer, Func <IPipelineBuilder, IBuiltPipeline> create)
        {
            if (diContainer.HasTag <PipelineFor <T> >())
            {
                return(diContainer.GetTag <PipelineFor <T> >().Pipeline);
            }
            var holder = new PipelineFor <T>(
                create(diContainer.GetTag <PipelineCollection>().GetPipeline()));

            diContainer.AddTag(holder);
            return(holder.Pipeline);
        }
예제 #3
0
 public void CanAddAndRemoveNewTag()
 {
     Assert.IsFalse(container.HasTag <Tag1>());
     Assert.IsFalse(container.RemoveTag <Tag1>());
     container.AddTag(new Tag1());
     Assert.IsTrue(container.HasTag <Tag1>());
     Assert.IsTrue(container.RemoveTag <Tag1>());
     Assert.IsFalse(container.HasTag <Tag1>());
     Assert.IsFalse(container.RemoveTag <Tag1>());
 }
예제 #4
0
 public void AddTagDoesNotModifyParent()
 {
     container.AddTag(new Tag4());
     Assert.IsTrue(container.HasTag <Tag4>());
     Assert.IsFalse(parentContainer.HasTag <Tag4>());
 }
예제 #5
0
 public void HasAllTags()
 {
     Assert.IsTrue(container.HasTag <Tag1>());
     Assert.IsTrue(container.HasTag <Tag2>());
     Assert.IsTrue(container.HasTag <Tag3>());
 }
예제 #6
0
 public bool HasTag <TTag>() where TTag : class =>
 main.HasTag <TTag>() || fallback.HasTag <TTag>();
예제 #7
0
 public bool HasTag <TTag>() where TTag : class => tagContainer.HasTag <TTag>();
예제 #8
0
 public bool HasTag <TTag>() where TTag : class =>
 extension.HasTag <TTag>() || parent.HasTag <TTag>();