public async void TestResolveViaForeignServiceType() { // arrange ISchema schema = SchemaBuilder.New() .AddApolloFederation() .AddQueryType <Query>() .Create(); IResolverContext context = CreateResolverContext(schema); // act var representations = new List <Representation> { new() { TypeName = "ForeignType", Data = new ObjectValueNode( new ObjectFieldNode("Id", "1"), new ObjectFieldNode("SomeExternalField", "someExternalField")) } }; // assert List <object?> result = await EntitiesResolver._Entities(schema, representations, context); ForeignType obj = Assert.IsType <ForeignType>(result[0]); Assert.Equal("1", obj.Id); Assert.Equal("someExternalField", obj.SomeExternalField); Assert.Equal("InternalValue", obj.InternalField); }
public string GetNameForForeignTypeDecl(ForeignType foreignType) { if (foreignTypeDeclNames.TryGetValue(foreignType, out string name)) { return(name); } name = UniquifyName(NamePrefix + foreignType.CanonicalRepresentation); foreignTypeDeclNames.Add(foreignType, name); return(name); }
public StreamForeign() { var streamType = new ForeignType("Stream"); Add("Stream", streamType, Stream); Add("Write", new BoundTupleType(new IBoundDecl[] { streamType, Decl.Int }), Decl.Unit, WriteInt); Add("WriteByte", new BoundTupleType(new IBoundDecl[] { streamType, Decl.Int }), Decl.Unit, WriteByte); Add("Write", new BoundTupleType(new IBoundDecl[] { streamType, Decl.String }), Decl.Unit, WriteString); Add("Seek", new BoundTupleType(new IBoundDecl[] { streamType, Decl.Int }), Decl.Unit, Seek); Add("Position", streamType, Decl.Int, StreamPosition); Add("Close", streamType, Decl.Unit, CloseStream); Add("ReadFile", Decl.String, Decl.String, ReadFile); }
public string GetForeignTypeName(ForeignType foreignType) { return(char.ToUpper(foreignType.OriginalRepresentation[0]) + foreignType.OriginalRepresentation.Substring(1)); }