Beispiel #1
0
            public void DoesCallFirstBuilder()
            {
                IBuilderManager sut     = new BuilderManager();
                var             builder = A.Fake <IBuilder>();

                sut.AddBuilder(builder)
                .Build();

                A.CallTo(() => builder.Build()).MustHaveHappenedOnceExactly();
            }
Beispiel #2
0
            public void DoesCallInOrder()
            {
                IBuilderManager sut      = new BuilderManager();
                var             builderA = A.Fake <IBuilder>();
                var             builderB = A.Fake <IBuilder>();

                sut
                .AddBuilder(builderA)
                .AddBuilder(builderB)
                .Build();

                A.CallTo(() => builderA.Build()).MustHaveHappenedOnceExactly()
                .Then(A.CallTo(() => builderB.Build()).MustHaveHappenedOnceExactly());
            }
Beispiel #3
0
 public void CheckCycle(Type convertType)
 {
     if (!BuilderManager.ContainsBuilder(convertType))
     {
         if (Record.Contains(convertType))
         {
             throw new Exception("不允许循环引用");
         }
         else
         {
             Record.Add(convertType);
             BuilderManager.AddBuilder(convertType, this);
         }
     }
 }