    @Test
    public void testArrayStartsWith() throws Exception {

        GraphQLObjectType innerType = newObject()
                .name("Inner")
                .field(newStringField("b").staticValue("foo"))
                .build();

        GraphQLSchema schema = newQuerySchema(it -> it
                .field(
                        newField("a", new GraphQLList(innerType))
                                .dataFetcher(env -> Flowable
                                        .just(asList(true, true, true))
                                        .delay(1, SECONDS, scheduler)
                                        .startWith(new ArrayList<Boolean>())
                                )
                )
        );

        ExecutionResult executionResult = new GraphQL(schema, strategy).execute("{ a { b } }");

        Flowable.fromPublisher((Publisher<Change>) executionResult.getData()).timestamp(scheduler).subscribe(subscriber);

        scheduler.advanceTimeBy(2, SECONDS);

        subscriber
                .assertChanges(it -> it.containsExactly(
                        tuple("00:000", "", ImmutableMap.of("a", emptyList())),

                        tuple("01:000", "a", asList(ImmutableMap.of("b", "foo"), ImmutableMap.of("b", "foo"), ImmutableMap.of("b", "foo"))),
                        // FIXME this values are duplicated. For now, let's call it "at least once" delivery :D
                        tuple("01:000", "a[1]", ImmutableMap.of("b", "foo")),
                        tuple("01:000", "a[2]", ImmutableMap.of("b", "foo"))
                ))
                .assertComplete();
    }