Unions
Unions are created as instances of UnionType
.
Creating union
Union with two possible values
[Fact]
public void Define_union()
{
/* Given */
var builder = new SchemaBuilder();
builder.Object("Person", out var person)
.Connections(connect => connect
.Field(person, "name", ScalarType.NonNullString));
builder.Object("Photo", out var photo)
.Connections(connect => connect
.Field(photo, "height", ScalarType.NonNullInt)
.Field(photo, "width", ScalarType.NonNullInt));
/* When */
builder.Union("SearchResult", out var searchResult,
possibleTypes: new[] {person, photo});
var personIsPossible = searchResult.IsPossible(person);
var photoIsPossible = searchResult.IsPossible(photo);
/* Then */
Assert.True(personIsPossible);
Assert.True(photoIsPossible);
}