Bike.Test.InteropTest.InstanceEventHandling C# (CSharp) Method

InstanceEventHandling() private method

private InstanceEventHandling ( ) : void
return void
        public void InstanceEventHandling()
        {
            Interpret(
                @"load 'Bike.Test';
                  var person = Test.Person();
                  person.action = func(arg) {arg * arg;};
                  var a = person.action(2);")
                .Equal("a", 4);

            Interpret(
                @"person = Test.Person();
                  person.AssignDelegate(func(arg) {arg * arg;});
                  a = person.action(2);")
                .Equal("a", 4);

            Interpret(
                @"person = Test.Person('bike', 11, 'kiki');
                  var sum = 0;
                  person.action += func(arg) {sum += this.Age;};
                  person.action += func(arg) {sum += (arg * arg);};
                  a = person.action(2);")
                .Equal("a", 15)
                .Equal("sum", 15);

            Interpret(
                @"person = Test.Person();
                  sum = 0;
                  person.AddDelegate(func(arg) {sum += arg;});
                  person.AddDelegate(func(arg) {sum += (arg * arg);});
                  a = person.action(2);")
                .Equal("a", 6)
                .Equal("sum", 6);

            Interpret(
                @"person = Test.Person('bike', 11, 'kiki');
                  sum = 0;
                  person.eventAction += func(arg) {sum += this.Age;};
                  person.eventAction += func(arg) {sum += (arg * arg);};
                  a = person.RunEvent(2);")
                .Equal("a", 15)
                .Equal("sum", 15);

            Interpret(
                @"person = Test.Person();
                  sum = 0;
                  person.AddEvent(func(arg) {sum += arg;});
                  person.AddEvent(func(arg) {sum += (arg * arg);});
                  a = person.RunEvent(2);")
                .Equal("a", 6)
                .Equal("sum", 6);

            Interpret(
                @"person = Test.Person('bike', 11, 'kiki');
                  person.action = func() { this.Age; };
                  a = person.action(0);")
                .Equal("a", 11);
        }