private IEnumerator Start()
        {
            try
            {
                CodeblockSystem system = BuildSystem();

                if (system.AnyError)
                {
                    IEnumerable <IBlockError> errors = system.Errors;
                    string[] errorMessages           = errors.Select(e => e.ToString()).ToArray();
                    Debug.LogError(string.Join("\n", errorMessages));
                }
                else
                {
                    ICodeblockExecutionContext context = new StandardContext(this);
                    yield return(StartCoroutine(system.Blocks.ExecuteCodeblocks(context)));
                }
                _isDone = true;
            }
            finally
            {
                IsTestSuccess = true;
            }
            yield break;
        }
Пример #2
0
 public void PartnersCanBeChanged()
 {
   var ctx = new StandardContext();
   ctx.Add("Hotrod");
   ctx.Replace("Douchebag");
   ctx.Get<string>().ShouldBeEqualTo("Douchebag");
 }
Пример #3
0
 public void ContextDisposesOfDisposableThings()
 {
   var disp = MockRepository.GenerateMock<IDisposable>();
   using (var ctx = new StandardContext())
     ctx.Add(disp);
   disp.AssertWasCalled(d => d.Dispose());
 }
Пример #4
0
 public void PrimitivePolymorphismIsThere()
 {
   var ctx = new StandardContext();
   var reader = new BinaryReader(new MemoryStream());
   ctx.Add<IDisposable>(reader);
   ctx.Get<IDisposable>().ShouldBeTheSameAs(reader);
 }
Пример #5
0
 public void ContextLovesExtensions()
 {
   var extension = MockRepository
     .GenerateMock<IContextExtension<StandardContext>>();
   var ctx = new StandardContext();
   ctx.AddExtension(extension);
   extension.AssertWasCalled(
     e => e.Attach(null),
     o => o.Constraints(Is.Equal(ctx)));
 }
Пример #6
0
 public void ContextEnsuresLastDateWithExtension()
 {
   var extension = MockRepository
     .GenerateMock<IContextExtension<StandardContext>>();
   var ctx = new StandardContext();
   ctx.AddExtension(extension);
   ctx.Remove(extension);
   extension.AssertWasCalled(
     e => e.Remove(null),
     o => o.Constraints(Is.Equal(ctx)));
 }
 private void Update()
 {
     // for testing only
     if (Input.GetKeyDown(KeyCode.F5))
     {
         StandardContext context = new StandardContext(this)
         {
             Delay = 0.5f
         };
         StartCoroutine(CurrentSystem.Blocks.ExecuteCodeblocks(context));
     }
 }
Пример #8
0
 public void ContextIsCloneable()
 {
   StandardContext ctx = new StandardContext();
   ctx.Add("string");
   var ctx2 = ctx.CloneContext();
   ctx2.Get<string>().ShouldBeTheSameAs(ctx.Get<string>());
 }
Пример #9
0
 public void ContextLeavesDisposableThingsAloneIfYouWant()
 {
   var disp = MockRepository.GenerateMock<IDisposable>();
   using (var ctx = new StandardContext())
     ctx.Add(disp, false);
   disp.AssertWasNotCalled(d => d.Dispose());
 }
Пример #10
0
 public void AddingTwiceMakesContextChoke()
 {
   var ctx = new StandardContext();
   ctx.Add("Hello");
   ctx.Add("World");
 }
Пример #11
0
 public void ContextAcceptsOneOfAKind()
 {
   var ctx = new StandardContext();
   ctx.Add("Hello");
   ctx.Get<string>().ShouldBeEqualTo("Hello");
 }
Пример #12
0
    public void AnObjectAddedTwiceIsOnlyDisposedOnce()
    {
      var mock = MockRepository.GenerateMock<IDisposable>();
      mock.Expect(d => d.Dispose()).Repeat.Once();
      var ctx = new StandardContext();
      ctx.Add(mock);
      ctx.Add((object)mock);

      ctx.Dispose();
      mock.VerifyAllExpectations();
    }
Пример #13
0
 public void ContextCloneCanBeModifiedWithoutAffectingTheOriginal()
 {
   StandardContext ctx = new StandardContext();
   ctx.Add("horse");
   var ctx2 = ctx.CloneContext();
   ctx2.Replace("dog");
   ctx2.Add(new StringBuilder());
   ctx.Get<string>().ShouldBeTheSameAs("horse");
   ctx.Get<StringBuilder>().ShouldBeNull();
 }