public void Polymorphic_UpCastTest() { var grainFullName = typeof(PolymorphicTestGrain).FullName; IC ICRef = GrainClient.GrainFactory.GetGrain <IC>(GetRandomGrainId(), grainFullName); IA IARef = ICRef; // cast to polymorphic interface Assert.AreEqual("A1", IARef.A1Method().Result); Assert.AreEqual("A2", IARef.A2Method().Result); Assert.AreEqual("A3", IARef.A3Method().Result); IB IBRef = ICRef; // cast to polymorphic interface Assert.AreEqual("B1", IBRef.B1Method().Result); Assert.AreEqual("B2", IBRef.B2Method().Result); Assert.AreEqual("B3", IBRef.B3Method().Result); IF IFRef = GrainClient.GrainFactory.GetGrain <IF>(GetRandomGrainId(), grainFullName); Assert.AreEqual("F1", IFRef.F1Method().Result); Assert.AreEqual("F2", IFRef.F2Method().Result); Assert.AreEqual("F3", IFRef.F3Method().Result); IE IERef = IFRef; // cast to polymorphic interface Assert.AreEqual("E1", IERef.E1Method().Result); Assert.AreEqual("E2", IERef.E2Method().Result); Assert.AreEqual("E3", IERef.E3Method().Result); }
public void Polymorphic_SimpleTest() { var grainFullName = typeof(PolymorphicTestGrain).FullName; IA IARef = GrainClient.GrainFactory.GetGrain <IA>(GetRandomGrainId(), grainFullName); Assert.AreEqual("A1", IARef.A1Method().Result); Assert.AreEqual("A2", IARef.A2Method().Result); Assert.AreEqual("A3", IARef.A3Method().Result); }
public void Polymorphic_FactoryMethods() { var grainFullName = typeof(PolymorphicTestGrain).FullName; IC ICRef = GrainClient.GrainFactory.GetGrain <IF>(GetRandomGrainId(), grainFullName); // FRef factory method returns a polymorphic reference to ICRef Assert.AreEqual("B2", ICRef.B2Method().Result); IA IARef = GrainClient.GrainFactory.GetGrain <ID>(GetRandomGrainId(), grainFullName); // DRef factory method returns a polymorphic reference to IARef Assert.AreEqual("A1", IARef.A1Method().Result); }