Inheritance: IValidatableObject
    public void _01_BindBaseClass()
    {
        // 基底クラスを派生クラスにバインド
        Container.Bind <FooBase>().To <Foo>().AsTransient();

        // バインドしたクラスは解決できる(中身はバインド先クラスのインスタンス)
        FooBase fooBase = Container.Resolve <FooBase>();

        Assert.AreEqual("Foo", fooBase.name);

        // バインド先クラスは直接解決できない
        AssertThrows <ZenjectException>(() => Container.Resolve <Foo>());
        // -> Unable to resolve '_4_BindClassAndInterfaceTest.Foo'.
    }
Esempio n. 2
0
        public void TestObjectValues()
        {
            _fixture.ClearAll();
            _fixture.Ioc.RegisterSingleton <IMvxAutoValueConverters>(new MockAutoValueConverters());

            var foo = new Foo();

            Assert.Equal(foo, typeof(FooBase).MakeSafeValue(foo));
            var fooBase = new FooBase();

            Assert.Equal(fooBase, typeof(FooBase).MakeSafeValue(fooBase));
            fooBase = null;
            Assert.Null(typeof(FooBase).MakeSafeValue(null));
        }
Esempio n. 3
0
        public void TestObjectValues()
        {
            ClearAll();
            MvxBindingSingletonCache.Initialize();
            Mvx.RegisterSingleton <IMvxAutoValueConverters>(new MockAutoValueConverters());

            var foo = new Foo();

            Assert.AreSame(foo, typeof(FooBase).MakeSafeValue(foo));
            var fooBase = new FooBase();

            Assert.AreSame(fooBase, typeof(FooBase).MakeSafeValue(fooBase));
            fooBase = null;
            Assert.IsNull(typeof(FooBase).MakeSafeValue(null));
        }
    public static int FooBar(FooBase fooBase)
    {
        int  val  = -1;
        Type type = fooBase.GetType();

        if (type == typeof(Foo))
        {
            Foo foo = (Foo)fooBase;
            val = foo.Bar;
        }
        else
        {
            // Do something
        }
        return(val);
    }
    public void _04_AsTransientAndResolve()
    {
        // AsTransient()でそれぞれバインド
        Container.Bind <FooBase>().To <Foo>().AsTransient();
        Container.Bind <IFoo>().To <Foo>().AsTransient();
        FooBase fooBase = Container.Resolve <FooBase>();
        IFoo    ifoo    = Container.Resolve <IFoo>();

        // どちらもFooのインスタンス
        Assert.AreEqual("Foo", fooBase.name);
        Assert.AreEqual("Foo", ifoo.name);

        // インスタンスは異なる
        Assert.AreEqual(0, fooBase.id);
        Assert.AreEqual(1, ifoo.id);
    }
Esempio n. 6
0
        public void InheritanceTest()
        {
            object  something = new FooB();
            FooBase foo       = GoInterface <FooBase> .From(something);

            Assert.That(foo.Foo() == "Foo");
            Assert.That(foo.Bar() == "Bar");
            Assert.That(foo.Baz(1) == "Baz");
            Assert.That(((IBaz)foo).Baz(false) == "Baz");
            Assert.That(foo.Baz() == "Baz");

            something = new FooB();
            IBaz baz = GoInterface <IBaz> .ForceFrom(something);

            Assert.That(((IBar)baz).Bar() == "Bar");
            Assert.That(((IBar2)baz).Bar() == "Bar");
            Assert.That(baz.Baz() == "Baz");
        }
Esempio n. 7
0
 public static global::Grpc.Core.ServerServiceDefinition BindService(FooBase serviceImpl)
 {
     return global::Grpc.Core.ServerServiceDefinition.CreateBuilder()
             .AddMethod(Method_foo11, serviceImpl.foo11_impl)
             .AddMethod(Method_foo12, serviceImpl.foo12_impl0)
             .AddMethod(Method_foo12_impl, serviceImpl.foo12_impl_impl)
             .AddMethod(Method_foo13, serviceImpl.foo13_impl)
             .AddMethod(Method_foo14, serviceImpl.foo14_impl)
             .AddMethod(Method_foo15, serviceImpl.foo15_impl)
             .AddMethod(Method_foo21, serviceImpl.foo21)
             .AddMethod(Method_foo22, serviceImpl.foo22)
             .AddMethod(Method_foo23, serviceImpl.foo23)
             .AddMethod(Method_foo24, serviceImpl.foo24)
             .AddMethod(Method_foo31, serviceImpl.foo31)
             .AddMethod(Method_foo32, serviceImpl.foo32)
             .AddMethod(Method_foo33, serviceImpl.foo33)
             .AddMethod(Method_foo34, serviceImpl.foo34)
             .AddMethod(Method_foo41, serviceImpl.foo41)
             .AddMethod(Method_foo42, serviceImpl.foo42)
             .AddMethod(Method_foo43, serviceImpl.foo43)
             .AddMethod(Method_foo44, serviceImpl.foo44)
             .Build();
 }
    public void _05_AsCachedAndFromResolveAndResolve()
    {
        // AsCached()でバインド
        Container.Bind <Foo>().AsCached();

        // FromResolve()によってFooへのバインドは既存のバインドから解決
        Container.Bind <FooBase>().To <Foo>().FromResolve();
        Container.Bind <IFoo>().To <Foo>().FromResolve();

        Foo     foo     = Container.Resolve <Foo>();
        FooBase fooBase = Container.Resolve <FooBase>();
        IFoo    ifoo    = Container.Resolve <IFoo>();

        // 全てFooのインスタンス
        Assert.AreEqual("Foo", foo.name);
        Assert.AreEqual("Foo", fooBase.name);
        Assert.AreEqual("Foo", ifoo.name);

        // AsCached() + FromResolve() によって全て同じインスタンス
        Assert.AreEqual(0, foo.id);
        Assert.AreEqual(0, fooBase.id);
        Assert.AreEqual(0, ifoo.id);
    }
        public void TestObjectValues()
        {
            ClearAll();
            MvxBindingSingletonCache.Initialize();
            Mvx.RegisterSingleton<IMvxAutoValueConverters>(new MockAutoValueConverters());

            var foo = new Foo();
            Assert.AreSame(foo, typeof(FooBase).MakeSafeValue(foo));
            var fooBase = new FooBase();
            Assert.AreSame(fooBase, typeof(FooBase).MakeSafeValue(fooBase));
            fooBase = null;
            Assert.IsNull(typeof(FooBase).MakeSafeValue(null));
        }
 private FooDto Map(FooBase foo)
 {
     return Mapper.Map<FooBase, FooDto>(foo);
 }
 private FooBase SetRetVal(FooBase fooBase)
 {
     fooBase.RetVal = FooVal;
     return(fooBase);
 }
 static void DoSomething(FooBase foo)
 {
 }
 //Override FooMethod so that it can do whatever Foo needs it to do
 public override void FooMethod(FooBase ob)
 {
     Console.WriteLine("Hiiiii\t" + ob);
 }
 public abstract void FooMethod(FooBase obj);
Esempio n. 15
0
 public static global::Grpc.Core.ServerServiceDefinition BindService(FooBase serviceImpl)
 {
     return(global::Grpc.Core.ServerServiceDefinition.CreateBuilder()
            .AddMethod(Method_foo, serviceImpl.foo)
            .Build());
 }
Esempio n. 16
0
 private FooDto Map(FooBase foo)
 {
     return(Mapper.Map <FooBase, FooDto>(foo));
 }
Esempio n. 17
0
 public static void ApplyFooDefaults(this FooBase unhandledFoo)
 {
     unhandledFoo.Name = "Unhandled Foo";
     Console.WriteLine(unhandledFoo);
 }