public void Execute(string[] args) { var options = new Options(); Parser.Default.ParseArguments(args, options); var loops = options.MegaLoops * 1000000L; var foo = new FooImpl(); var iFoo = (IFoo)foo; var type = options.CallType.ToLower(); switch (type) { case DirectCallTestName: for (long i = 0; i < loops; i++) { foo.Bar(); } break; case InterfaceCallTestName: for (long i = 0; i < loops; i++) { iFoo.Bar(); } break; default: throw new Exception($"Unknown type '{type}'"); } }
public void StateChanges() { Foo foo = new FooImpl(); Assert.AreEqual(foo.GetCurrentState(), int.MinValue); foo.ChangeInternalState(); Assert.Greater(foo.GetCurrentState(), int.MinValue); }
public void shouldReturnRegisterInstance() { SimpleContainer simpleContainer = new SimpleContainer(); IFoo foo1 = new FooImpl(); simpleContainer.RegisterInstance <TestProject1.IFoo>(foo1); IFoo foo2 = simpleContainer.Resolve <IFoo>(); Assert.IsTrue(foo1 == foo2); }
public void Create2() { var t0 = new FooImpl(null); var r = new Registry(); r.RegisterAssemblies <ExportAttribute>(); var o = r.ResolveAll <IBar>().ToList(); Assert.Equal(o.Count, 1); }
public IEnumerator GetsExistingReference() { GameObject go = new GameObject(); FooImpl pup = go.AddComponent <FooImpl>(); Assert.IsNotNull(pup); IFooReference reference = go.AddComponent <IFooReference>(); Assert.IsNotNull(reference); // The reference component should automatically pickup the actual interface reference. Assert.AreEqual(pup, reference.Get()); yield return(null); }
public void TestRegisterInstance() { var fooInstance1 = new FooImpl(); var fooInstance2 = new FooImpl2(); // given using (var dependencyResolver = CreateSubject((builder, _) => { builder .RegisterInstance <FooImpl>(fooInstance1) .As <IFoo>(); })) { // when var foo1 = dependencyResolver.Resolve <IFoo>(); var foo2 = dependencyResolver.Resolve <IFoo>(); IFoo foo3, foo4; using (var scope1 = dependencyResolver.BeginLifetimeScope()) { foo3 = scope1.Resolve <IFoo>(); using (var scope2 = scope1.BeginLifetimeScope(r => r.RegisterInstance <IFoo>(fooInstance2))) { foo4 = scope2.Resolve <IFoo>(); } } // assert new List <object>() { foo1, foo2, foo3 }.ForEach(foo => { Assert.IsNotNull(foo); Assert.AreEqual(typeof(FooImpl).FullName, foo.GetType().FullName); }); Assert.IsNotNull(foo4); Assert.AreEqual(typeof(FooImpl2).FullName, foo4.GetType().FullName); Assert.IsTrue(foo1 == fooInstance1 && foo2 == fooInstance1 && foo3 == fooInstance1); Assert.IsTrue(foo4 == fooInstance2); } }
public IEnumerator MultipleImplementationsError() { GameObject go = new GameObject(); FooImpl pup = go.AddComponent <FooImpl>(); FooImpl pup2 = go.AddComponent <FooImpl>(); Assert.IsNotNull(pup); Assert.IsNotNull(pup2); string componentName = typeof(FooImpl).Name; LogAssert.Expect(LogType.Error, new Regex(@".*" + go.name + ".*")); LogAssert.Expect(LogType.Error, new Regex(@".*" + componentName + ".*")); LogAssert.Expect(LogType.Error, new Regex(@".*" + componentName + ".*")); IFooReference reference = go.AddComponent <IFooReference>(); Assert.IsNotNull(reference); // The reference component should automatically pickup the actual interface reference. Assert.AreEqual(pup, reference.Get()); yield return(null); }
public void Create1() { var t0 = new FooImpl(null); var r = new Registry(); r.Register <FooImpl>(); r.Register <Bar1>(); r.Register <Bar2>(); var o = r.ResolveAll <IFoo>().ToList(); Assert.Equal(o.Count, 1); Assert.NotNull(o[0]); var oo = o[0]; Assert.NotNull(oo.MyToo); Assert.True(oo is FooImpl); var fi = (FooImpl)oo; Assert.Equal(2, fi.Bars.Length); Assert.True(fi.Bars.First(x => x is Bar1) != null); Assert.True(fi.Bars.First(x => x is Bar2) != null); }