コード例 #1
0
ファイル: MethodsCall.cs プロジェクト: dmitry-ra/benchmarks
        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}'");
            }
        }
コード例 #2
0
ファイル: FooImplTest.cs プロジェクト: khindemit/Learning
        public void StateChanges()
        {
            Foo foo = new FooImpl();

            Assert.AreEqual(foo.GetCurrentState(), int.MinValue);

            foo.ChangeInternalState();
            Assert.Greater(foo.GetCurrentState(), int.MinValue);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
    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);
    }
コード例 #6
0
            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);
                }
            }
コード例 #7
0
    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);
    }
コード例 #8
0
        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);
        }