示例#1
0
        public void DuckedTypeCannotGetPrivateMethod()
        {
            var a = new ConcreteClass();
            var duck = a.Duck<IProtectedInterfaceWithMethod>();

            duck.ProtectedMethod();
        }
示例#2
0
        public void DuckedTypeCannotGetPrivateEvent()
        {
            var a = new ConcreteClass();
            var duck = a.Duck<IProtectedInterfaceWithEvent>();

            duck.ProtectedEvent += (sender, args) => args.ToString();
        }
示例#3
0
        public void DuckedTypeCannotGetPrivateProperty()
        {
            var a = new ConcreteClass();
            var duck = a.Duck<IProtectedInterface>();

            duck.ProtectedData = "test";
        }
示例#4
0
        public void DuckedTypeCanGetProperty()
        {
            var a = new ConcreteClass();
            var duck = a.Duck<ITest>();
            a.Tuple = new Tuple<string, int>("test", 1);

            Assert.AreEqual(a.Tuple.Item1, duck.Tuple.Item1);
        }
示例#5
0
 public void DuckedTypeCallNonReturnMethodWithParameters()
 {
     var a = new ConcreteClass();
     var duck = a.Duck<ITest>();
     duck.Temp("");
 }
示例#6
0
 public void DuckedTypeCallNonReturnGenericMethod()
 {
     var a = new ConcreteClass();
     var duck = a.Duck<ITest>();
     duck.Temp<string>();
 }
示例#7
0
 public void DuckedTypeCanAddAndRemoveEventHandler()
 {
     var a = new ConcreteClass();
     var duck = a.Duck<ITest>();
     duck.TestEvent += DuckOnTestEvent;
     duck.TestEvent -= DuckOnTestEvent;
 }
示例#8
0
 public void DuckedTypeCanAddEventHandler()
 {
     var a = new ConcreteClass();
     var duck = a.Duck<ITest>();
     duck.TestEvent += (sender, args) => { };
 }
示例#9
0
 public void DuckedTypeCallReturnGenericMethodWithParameters()
 {
     var a = new ConcreteClass();
     var duck = a.Duck<ITest>();
     duck.ATemp<string>("");
 }
示例#10
0
 public void DuckedTypeCallReturnMethod()
 {
     var a = new ConcreteClass();
     var duck = a.Duck<ITest>();
     duck.ATemp();
 }