Esempio n. 1
0
        public void StaticFields(object obscureObject)
        {
            var duckInterface = obscureObject.DuckCast <IObscureDuckType>();
            var duckAbstract  = obscureObject.DuckCast <ObscureDuckTypeAbstractClass>();
            var duckVirtual   = obscureObject.DuckCast <ObscureDuckTypeVirtualClass>();

            IDummyFieldObject newDummy = null;

            // *
            newDummy = (new ObscureObject.DummyFieldObject {
                MagicNumber = 42
            }).DuckCast <IDummyFieldObject>();
            duckInterface.PublicStaticSelfTypeField = newDummy;

            Assert.Equal(42, duckInterface.PublicStaticSelfTypeField.MagicNumber);
            Assert.Equal(42, duckAbstract.PublicStaticSelfTypeField.MagicNumber);
            Assert.Equal(42, duckVirtual.PublicStaticSelfTypeField.MagicNumber);

            // *
            newDummy = (new ObscureObject.DummyFieldObject {
                MagicNumber = 52
            }).DuckCast <IDummyFieldObject>();
            duckInterface.InternalStaticSelfTypeField = newDummy;

            Assert.Equal(52, duckInterface.InternalStaticSelfTypeField.MagicNumber);
            Assert.Equal(52, duckAbstract.InternalStaticSelfTypeField.MagicNumber);
            Assert.Equal(52, duckVirtual.InternalStaticSelfTypeField.MagicNumber);

            // *
            newDummy = (new ObscureObject.DummyFieldObject {
                MagicNumber = 62
            }).DuckCast <IDummyFieldObject>();
            duckAbstract.ProtectedStaticSelfTypeField = newDummy;

            Assert.Equal(62, duckInterface.ProtectedStaticSelfTypeField.MagicNumber);
            Assert.Equal(62, duckAbstract.ProtectedStaticSelfTypeField.MagicNumber);
            Assert.Equal(62, duckVirtual.ProtectedStaticSelfTypeField.MagicNumber);

            // *
            newDummy = (new ObscureObject.DummyFieldObject {
                MagicNumber = 72
            }).DuckCast <IDummyFieldObject>();
            duckAbstract.PrivateStaticSelfTypeField = newDummy;

            Assert.Equal(72, duckInterface.PrivateStaticSelfTypeField.MagicNumber);
            Assert.Equal(72, duckAbstract.PrivateStaticSelfTypeField.MagicNumber);
            Assert.Equal(72, duckVirtual.PrivateStaticSelfTypeField.MagicNumber);
        }
Esempio n. 2
0
 public abstract string Bypass(IDummyFieldObject obj);
Esempio n. 3
0
 public abstract string TryGetReference(ref IDummyFieldObject obj);
Esempio n. 4
0
 public abstract string TryGetObscure(out IDummyFieldObject obj);
 public virtual bool TryGetPrivateObscure(out IDummyFieldObject obj, string wrong)
 {
     obj = default;
     return(false);
 }
Esempio n. 6
0
        public void Properties(object obscureObject)
        {
            var duckInterface = obscureObject.As <IObscureDuckType>();
            var duckAbstract  = obscureObject.As <ObscureDuckTypeAbstractClass>();
            var duckVirtual   = obscureObject.As <ObscureDuckTypeVirtualClass>();

            IDummyFieldObject newDummy = null;

            // *
            newDummy = (new ObscureObject.DummyFieldObject {
                MagicNumber = 42
            }).As <IDummyFieldObject>();
            duckInterface.PublicGetSetSelfType = newDummy;

            Assert.Equal(42, duckInterface.PublicGetSetSelfType.MagicNumber);
            Assert.Equal(42, duckAbstract.PublicGetSetSelfType.MagicNumber);
            Assert.Equal(42, duckVirtual.PublicGetSetSelfType.MagicNumber);

            // *
            newDummy = (new ObscureObject.DummyFieldObject {
                MagicNumber = 52
            }).As <IDummyFieldObject>();
            duckInterface.InternalGetSetSelfType = newDummy;

            Assert.Equal(52, duckInterface.InternalGetSetSelfType.MagicNumber);
            Assert.Equal(52, duckAbstract.InternalGetSetSelfType.MagicNumber);
            Assert.Equal(52, duckVirtual.InternalGetSetSelfType.MagicNumber);

            newDummy = (new ObscureObject.DummyFieldObject {
                MagicNumber = 42
            }).As <IDummyFieldObject>();
            duckInterface.InternalGetSetSelfType = newDummy;

            // *
            newDummy = (new ObscureObject.DummyFieldObject {
                MagicNumber = 62
            }).As <IDummyFieldObject>();
            duckInterface.ProtectedGetSetSelfType = newDummy;

            Assert.Equal(62, duckInterface.ProtectedGetSetSelfType.MagicNumber);
            Assert.Equal(62, duckAbstract.ProtectedGetSetSelfType.MagicNumber);
            Assert.Equal(62, duckVirtual.ProtectedGetSetSelfType.MagicNumber);

            newDummy = (new ObscureObject.DummyFieldObject {
                MagicNumber = 42
            }).As <IDummyFieldObject>();
            duckInterface.ProtectedGetSetSelfType = newDummy;

            // *
            newDummy = (new ObscureObject.DummyFieldObject {
                MagicNumber = 72
            }).As <IDummyFieldObject>();
            duckInterface.PrivateGetSetSelfType = newDummy;

            Assert.Equal(72, duckInterface.PrivateGetSetSelfType.MagicNumber);
            Assert.Equal(72, duckAbstract.PrivateGetSetSelfType.MagicNumber);
            Assert.Equal(72, duckVirtual.PrivateGetSetSelfType.MagicNumber);

            newDummy = (new ObscureObject.DummyFieldObject {
                MagicNumber = 42
            }).As <IDummyFieldObject>();
            duckInterface.PrivateGetSetSelfType = newDummy;
        }
Esempio n. 7
0
 public abstract bool TryGetPrivateReference(ref IDummyFieldObject obj);
Esempio n. 8
0
 public abstract IDummyFieldObject Bypass(IDummyFieldObject obj, string wrong);
 public virtual string TryGetPrivateReference(ref IDummyFieldObject obj)
 {
     return(string.Empty);
 }
 public virtual string TryGetPrivateObscure(out IDummyFieldObject obj)
 {
     obj = default;
     return(string.Empty);
 }
Esempio n. 11
0
 public abstract bool NotTryGetReference(ref IDummyFieldObject obj);
Esempio n. 12
0
 public abstract bool NotTryGetObscure(out IDummyFieldObject obj);
 public virtual IDummyFieldObject Bypass(IDummyFieldObject obj, string wrong) => null;
 public virtual bool TryGetPrivateReference(ref IDummyFieldObject obj, string wrong)
 {
     return(false);
 }
Esempio n. 15
0
 public abstract bool TryGetObscure(out IDummyFieldObject obj, string wrong);
Esempio n. 16
0
 public abstract bool TryGetReference(ref IDummyFieldObject obj, string wrong);
 public virtual string Bypass(IDummyFieldObject obj) => null;
Esempio n. 18
0
 public abstract bool TryGetPrivateObscure(out IDummyFieldObject obj);
 public virtual bool NotTryGetPrivateObscure(out IDummyFieldObject obj)
 {
     obj = default;
     return(false);
 }
Esempio n. 20
0
 public abstract IDummyFieldObject Bypass(IDummyFieldObject obj);
 public virtual bool NotTryGetPrivateReference(ref IDummyFieldObject obj)
 {
     return(false);
 }
 public virtual IDummyFieldObject NotBypass(IDummyFieldObject obj) => null;
Esempio n. 23
0
 public virtual bool TryGetReference(ref IDummyFieldObject obj)
 {
     return(false);
 }