public async Task GeneratorDerivedGrain1ControlFlow() { IGeneratorTestDerivedGrain1 grain = this.GrainFactory.GetGrain <IGeneratorTestDerivedGrain1>(GetRandomGrainId()); bool isNull = await grain.StringIsNullOrEmpty(); Assert.True(isNull); await grain.StringSet("Begin"); isNull = await grain.StringIsNullOrEmpty(); Assert.False(isNull); MemberVariables members = await grain.GetMemberVariables(); Assert.Equal("Begin", members.stringVar); ASCIIEncoding encoding = new ASCIIEncoding(); byte[] bytes = encoding.GetBytes("ByteBegin"); string str = "StringBegin"; MemberVariables memberVariables = new MemberVariables(bytes, str, ReturnCode.Fail); await grain.SetMemberVariables(memberVariables); members = await grain.GetMemberVariables(); ASCIIEncoding enc = new ASCIIEncoding(); Assert.Equal("ByteBegin", enc.GetString(members.byteArray)); Assert.Equal("StringBegin", members.stringVar); Assert.Equal(ReturnCode.Fail, members.code); }
public void CastCallMethodInheritedFromBaseClass() { // GeneratorTestDerivedGrain1Reference derives from GeneratorTestGrainReference // GeneratorTestDerivedGrain2Reference derives from GeneratorTestGrainReference // GeneratorTestDerivedDerivedGrainReference derives from GeneratorTestDerivedGrain2Reference Task <bool> isNullStr; IGeneratorTestDerivedGrain1 grain = GrainClient.GrainFactory.GetGrain <IGeneratorTestDerivedGrain1>(GetRandomGrainId()); isNullStr = grain.StringIsNullOrEmpty(); Assert.True(isNullStr.Result, "Value should be null initially"); isNullStr = grain.StringSet("a").ContinueWith((_) => grain.StringIsNullOrEmpty()).Unwrap(); Assert.False(isNullStr.Result, "Value should not be null after SetString(a)"); isNullStr = grain.StringSet(null).ContinueWith((_) => grain.StringIsNullOrEmpty()).Unwrap(); Assert.True(isNullStr.Result, "Value should be null after SetString(null)"); IGeneratorTestGrain cast = grain.AsReference <IGeneratorTestGrain>(); isNullStr = cast.StringSet("b").ContinueWith((_) => grain.StringIsNullOrEmpty()).Unwrap(); Assert.False(isNullStr.Result, "Value should not be null after cast.SetString(b)"); }