예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }