private void should_implement_IMethodsFromGenericInterface_with_generic_params_SimpleStruct_and_SimpleClass() { Execute(() => { var @object = new ImplementGenericMethodsClass(); var @interface = @object as IMethodsFromGenericInterface <SimpleStruct, SimpleClass>; var value = @interface.ReturnValueFromFirstParameter(new SimpleStruct(1), new SimpleClass(2)); var ref1 = new SimpleStruct(1); var ref2 = new SimpleClass(1); var refAsString = @interface.ReturnRefParametersAsString(ref ref1, ref ref2); SimpleStruct out1; SimpleClass out2; SimpleStruct[] out3; SimpleClass[] out4; List <SimpleStruct> out5; List <SimpleClass> out6; @interface.ReturnOutParameters(out out1, out out2, out out3, out out4, out out5, out out6); Assert.Equal(1, value.Value); Assert.Equal(Helper.AsString(ref1, ref2), refAsString); Assert.Equal(new SimpleStruct(), out1); Assert.Null(out2); Assert.Equal(new SimpleStruct(), out3[0]); Assert.Null(out4[0]); Assert.Equal(new SimpleStruct(), out5[0]); Assert.Null(out6[0]); }); }
private void should_implement_IGenericProperties_with_generic_params_SimpleStruct_and_SimpleClass() { Execute(() => { var @object = new ImplementGenericMethodsClass(); var @interface = @object as IGenericProperties <SimpleStruct, SimpleClass>; @interface.T1Value = new SimpleStruct(1); var t1Value = @interface.T1Value; @interface.T1List = new List <SimpleStruct> { new SimpleStruct(1), new SimpleStruct(2) }; var t1List = @interface.T1List; @interface.T1T2TupleList = new List <Tuple <SimpleStruct, SimpleClass> > { new Tuple <SimpleStruct, SimpleClass>(new SimpleStruct(1), new SimpleClass(2)), new Tuple <SimpleStruct, SimpleClass>(new SimpleStruct(1), new SimpleClass(2)) }; var t1t2TupleList = @interface.T1T2TupleList; Assert.Equal(1, t1Value.Value); Assert.Equal(1, t1List[0].Value); Assert.Equal(2, t1List[1].Value); Assert.Equal(1, t1t2TupleList[0].Item1.Value); Assert.Equal(2, t1t2TupleList[0].Item2.Value); Assert.Equal(1, t1t2TupleList[1].Item1.Value); Assert.Equal(2, t1t2TupleList[1].Item2.Value); }); }
private void should_implement_IGenericProperties_with_generic_params_int_and_string() { Execute(() => { var @object = new ImplementGenericMethodsClass(); var @interface = @object as IGenericProperties <int, string>; @interface.T1Value = 2; var t1Value = @interface.T1Value; @interface.T1List = new List <int> { 3, 4 }; var t1List = @interface.T1List; @interface.T1T2TupleList = new List <Tuple <int, string> > { new Tuple <int, string>(5, "a"), new Tuple <int, string>(6, "b") }; var t1t2TupleList = @interface.T1T2TupleList; Assert.Equal(2, t1Value); Assert.Equal(3, t1List[0]); Assert.Equal(4, t1List[1]); Assert.Equal(5, t1t2TupleList[0].Item1); Assert.Equal("a", t1t2TupleList[0].Item2); Assert.Equal(6, t1t2TupleList[1].Item1); Assert.Equal("b", t1t2TupleList[1].Item2); }); }
private void should_implement_IMethodsFromGenericInterface_with_generic_params_int_and_string() { Execute(() => { var @object = new ImplementGenericMethodsClass(); var @interface = @object as IMethodsFromGenericInterface <int, string>; var value = @interface.ReturnValueFromFirstParameter(1, "a"); int ref1 = 2; string ref2 = "b"; var refAsString = @interface.ReturnRefParametersAsString(ref ref1, ref ref2); int out1; string out2; int[] out3; string[] out4; List <int> out5; List <string> out6; @interface.ReturnOutParameters(out out1, out out2, out out3, out out4, out out5, out out6); Assert.Equal(1, value); Assert.Equal(Helper.AsString(ref1, ref2), refAsString); Assert.Equal(0, out1); Assert.Null(out2); Assert.Equal(0, out3[0]); Assert.Null(out4[0]); Assert.Equal(0, out5[0]); Assert.Null(out6[0]); }); }
private void should_implement_IGenericConstraints_with_generic_params_SimpleStruct_and_SimpleClass() { Execute(() => { var @object = new ImplementGenericMethodsClass(); var @interface = @object as IGenericConstraints <SimpleStruct, SimpleClass>; var value1 = @interface.GenericConstraintMethod(new SimpleStruct(1), new SimpleClass(1)); var value2 = @interface.GenericConstraintMethodWithRepeatedGenericParameter(new SimpleStruct(2), 1); Assert.Equal(1, value1.Value); Assert.Equal(2, value2.Value); }); }
private void should_implement_IGenericConstraints_with_generic_params_int_and_string() { Execute(() => { var @object = new ImplementGenericMethodsClass(); var @interface = @object as IGenericConstraints <int, string>; var value1 = @interface.GenericConstraintMethod(1, "a"); var value2 = @interface.GenericConstraintMethodWithRepeatedGenericParameter(2, new SimpleStruct(3)); Assert.Equal(1, value1); Assert.Equal(2, value2); }); }
private void should_implement_IGenericMethodsFromGenericInterface_with_generic_params_SimpleStruct_and_SimpleClass() { Execute(() => { var @object = new ImplementGenericMethodsClass(); var @interface = @object as IGenericMethodsFromGenericInterface <SimpleStruct, SimpleClass>; var value = @interface.GenericReturnValueFromFirstParameter(new SimpleStruct(1), new SimpleClass(2), "b", "c"); SimpleStruct ref1 = new SimpleStruct(1); SimpleClass ref2 = new SimpleClass(1); string ref3 = "bb"; string ref4 = "bbb"; var refAsString = @interface.GenericReturnRefParametersAsString(ref ref1, ref ref2, ref ref3, ref ref4); SimpleStruct out1; SimpleClass out2; string out3; string out4; SimpleStruct[] out5; SimpleClass[] out6; string[] out7; string[] out8; List <SimpleStruct> out9; List <SimpleClass> out10; List <string> out11; List <string> out12; @interface.GenericReturnOutParameters(out out1, out out2, out out3, out out4, out out5, out out6, out out7, out out8, out out9, out out10, out out11, out out12); Assert.Equal(1, value.Value); Assert.Equal(Helper.AsString(ref1, ref2, ref3, ref4), refAsString); Assert.Equal(new SimpleStruct(), out1); Assert.Null(out2); Assert.Null(out3); Assert.Null(out4); Assert.Equal(new SimpleStruct(), out5[0]); Assert.Null(out6[0]); Assert.Null(out7[0]); Assert.Null(out8[0]); Assert.Equal(new SimpleStruct(), out9[0]); Assert.Null(out10[0]); Assert.Null(out11[0]); Assert.Null(out12[0]); }); }
private void should_implement_IGenericMethodsFromGenericInterfaceWithRepeatedGenericParameter_with_generic_params_SimpleStruct_and_SimpleClass() { Execute(() => { var @object = new ImplementGenericMethodsClass(); var @interface = @object as IGenericMethodsFromGenericInterfaceWithRepeatedGenericParameter <SimpleStruct, SimpleClass>; var value = @interface.GenericWithRepeatedGenericParameterReturnValueFromFirstParameter(new SimpleStruct(1), "a", "b"); SimpleStruct ref1 = new SimpleStruct(1); string ref2 = "b"; string ref3 = "bb"; var refAsString = @interface.GenericWithRepeatedGenericParameterReturnRefParametersAsString(ref ref1, ref ref2, ref ref3); SimpleStruct out1; string out2; string out3; SimpleStruct[] out4; string[] out5; string[] out6; List <SimpleStruct> out7; List <string> out8; List <string> out9; @interface.GenericWithRepeatedGenericParameterReturnOutParameters(out out1, out out2, out out3, out out4, out out5, out out6, out out7, out out8, out out9); Assert.Equal(1, value.Value); Assert.Equal(Helper.AsString(ref1, ref2, ref3), refAsString); Assert.Equal(new SimpleStruct(), out1); Assert.Null(out2); Assert.Null(out3); Assert.Equal(new SimpleStruct(), out4[0]); Assert.Null(out5[0]); Assert.Null(out6[0]); Assert.Equal(new SimpleStruct(), out7[0]); Assert.Null(out8[0]); Assert.Null(out9[0]); }); }