Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,5 @@
"default": "flutterfire-e2e-tests"
},
"targets": {},
"etags": {},
"dataconnectEmulatorConfig": {
"postgres": {
"localConnectionString": "postgresql://postgres:postgres@localhost:5432/postgres?sslmode=disable"
}
}
"etags": {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,40 +30,39 @@ void runGenerationTest() {

testWidgets('should have generated correct MutationRef',
(WidgetTester tester) async {
final ref = MoviesConnector.instance.createMovie
.ref(
final ref = MoviesConnector.instance
.createMovie(
genre: 'Action',
title: 'The Matrix',
releaseYear: 1999,
)
.rating(4.5);
expect(ref, isNotNull);
expect(ref.build().execute, isNotNull);
expect(ref.execute, isNotNull);
});

testWidgets('should have generated correct QueryRef',
(WidgetTester tester) async {
final ref = MoviesConnector.instance.listMovies.ref();
final ref = MoviesConnector.instance.listMovies().ref();
expect(ref, isNotNull);
expect(ref.build().execute, isNotNull);
expect(ref.execute, isNotNull);
});

testWidgets('should have generated correct MutationRef using name',
(WidgetTester tester) async {
final ref =
MoviesConnector.instance.addPerson.ref().name('Keanu Reeves');
final ref = MoviesConnector.instance.addPerson().name('Keanu Reeves');
expect(ref, isNotNull);
expect(ref.build().execute, isNotNull);
expect(ref.execute, isNotNull);
});

testWidgets('should have generated correct MutationRef using nested id',
(WidgetTester tester) async {
final ref = MoviesConnector.instance.addDirectorToMovie
.ref()
final ref = MoviesConnector.instance
.addDirectorToMovie()
.movieId('movieId')
.personId(AddDirectorToMovieVariablesPersonId(id: 'personId'));
expect(ref, isNotNull);
expect(ref.build().execute, isNotNull);
expect(ref.execute, isNotNull);
});
},
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,17 @@ void runListenTests() {
testWidgets('should be able to listen to the list of movies',
(WidgetTester tester) async {
final initialValue =
await MoviesConnector.instance.listMovies.ref().build().execute();
await MoviesConnector.instance.listMovies().ref().execute();
expect(initialValue.data.movies.length, 0,
reason: 'Initial movie list should be empty');

final Completer<void> isReady = Completer<void>();
final Completer<bool> hasBeenListened = Completer<bool>();
int count = 0;

final listener = MoviesConnector.instance.listMovies
final listener = MoviesConnector.instance
.listMovies()
.ref()
.build()
.subscribe()
.listen((value) {
final movies = value.data.movies;
Expand All @@ -54,17 +54,17 @@ void runListenTests() {
await isReady.future;

// Create the movie
await MoviesConnector.instance.createMovie
.ref(
await MoviesConnector.instance
.createMovie(
genre: 'Action',
title: 'The Matrix',
releaseYear: 1999,
)
.rating(4.5)
.build()
.ref()
.execute();

await MoviesConnector.instance.listMovies.ref().build().execute();
await MoviesConnector.instance.listMovies().ref().execute();

// Wait for the listener to receive the movie update
final bool hasListenerReceived = await hasBeenListened.future;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,10 @@ import 'package:firebase_data_connect_example/generated/movies.dart';
import 'package:flutter_test/flutter_test.dart';

Future<void> deleteAllMovies() async {
final value =
await MoviesConnector.instance.listMovies.ref().build().execute();
final value = await MoviesConnector.instance.listMovies().ref().execute();
final result = value.data;
for (var movie in result.movies) {
await MoviesConnector.instance.deleteMovie
.ref(id: movie.id)
.build()
.execute();
await MoviesConnector.instance.deleteMovie(id: movie.id).ref().execute();
}
}

Expand All @@ -28,109 +24,107 @@ void runQueryTests() {

testWidgets('can query', (WidgetTester tester) async {
final value =
await MoviesConnector.instance.listMovies.ref().build().execute();
await MoviesConnector.instance.listMovies().ref().execute();

final result = value.data;
expect(result.movies.length, 0);
});

testWidgets('can add a movie', (WidgetTester tester) async {
MutationRef ref = MoviesConnector.instance.createMovie
.ref(
MutationRef ref = MoviesConnector.instance
.createMovie(
genre: 'Action',
title: 'The Matrix',
releaseYear: 1999,
)
.rating(4.5)
.build();
.ref();

await ref.execute();

final value =
await MoviesConnector.instance.listMovies.ref().build().execute();
await MoviesConnector.instance.listMovies().ref().execute();
final result = value.data;
expect(result.movies.length, 1);
expect(result.movies[0].title, 'The Matrix');
});

testWidgets('can add a director to a movie', (WidgetTester tester) async {
MutationRef ref = MoviesConnector.instance.addPerson
.ref()
.name('Keanu Reeves')
.build();
MutationRef ref =
MoviesConnector.instance.addPerson().name('Keanu Reeves').ref();

await ref.execute();

final personId =
(await MoviesConnector.instance.listPersons.ref().build().execute())
(await MoviesConnector.instance.listPersons().ref().execute())
.data
.people[0]
.id;

final value =
await MoviesConnector.instance.listMovies.ref().build().execute();
await MoviesConnector.instance.listMovies().ref().execute();
final result = value.data;
expect(result.movies.length, 0);

ref = MoviesConnector.instance.createMovie
.ref(
ref = MoviesConnector.instance
.createMovie(
genre: 'Action',
title: 'The Matrix',
releaseYear: 1999,
)
.rating(4.5)
.build();
.ref();

await ref.execute();

final value2 =
await MoviesConnector.instance.listMovies.ref().build().execute();
await MoviesConnector.instance.listMovies().ref().execute();
final result2 = value2.data;
expect(result2.movies.length, 1);

final movieId = result2.movies[0].id;

ref = MoviesConnector.instance.addDirectorToMovie
.ref()
ref = MoviesConnector.instance
.addDirectorToMovie()
.movieId(movieId)
.personId(AddDirectorToMovieVariablesPersonId(id: personId))
.build();
.ref();

await ref.execute();

final value3 =
await MoviesConnector.instance.listMovies.ref().build().execute();
await MoviesConnector.instance.listMovies().ref().execute();
final result3 = value3.data;
expect(result3.movies.length, 1);
expect(result3.movies[0].directed_by.length, 1);
expect(result3.movies[0].directed_by[0].name, 'Keanu Reeves');
});

testWidgets('can delete a movie', (WidgetTester tester) async {
MutationRef ref = MoviesConnector.instance.createMovie
.ref(
MutationRef ref = MoviesConnector.instance
.createMovie(
genre: 'Action',
title: 'The Matrix',
releaseYear: 1999,
)
.rating(4.5)
.build();
.ref();

await ref.execute();

final value =
await MoviesConnector.instance.listMovies.ref().build().execute();
await MoviesConnector.instance.listMovies().ref().execute();
final result = value.data;
expect(result.movies.length, 1);

final movieId = result.movies[0].id;

ref = MoviesConnector.instance.deleteMovie.ref(id: movieId).build();
ref = MoviesConnector.instance.deleteMovie(id: movieId).ref();

await ref.execute();

final value2 =
await MoviesConnector.instance.listMovies.ref().build().execute();
await MoviesConnector.instance.listMovies().ref().execute();
final result2 = value2.data;
expect(result2.movies.length, 0);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,12 @@ class AddDateAndTimestampVariablesBuilder {
(dynamic json) => AddDateAndTimestampData.fromJson(jsonDecode(json));
Serializer<AddDateAndTimestampVariables> varsSerializer =
(AddDateAndTimestampVariables vars) => jsonEncode(vars.toJson());
MutationRef<AddDateAndTimestampData, AddDateAndTimestampVariables> build() {
Future<OperationResult<AddDateAndTimestampData, AddDateAndTimestampVariables>>
execute() {
return this.ref().execute();
}

MutationRef<AddDateAndTimestampData, AddDateAndTimestampVariables> ref() {
AddDateAndTimestampVariables vars = AddDateAndTimestampVariables(
date: date,
timestamp: timestamp,
Expand All @@ -26,23 +31,6 @@ class AddDateAndTimestampVariablesBuilder {
}
}

class AddDateAndTimestamp {
String name = "addDateAndTimestamp";
AddDateAndTimestamp({required this.dataConnect});
AddDateAndTimestampVariablesBuilder ref({
required DateTime date,
required Timestamp timestamp,
}) {
return AddDateAndTimestampVariablesBuilder(
dataConnect,
date: date,
timestamp: timestamp,
);
}

FirebaseDataConnect dataConnect;
}

class AddDateAndTimestampTimestampHolderInsert {
String id;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,12 @@ class AddDirectorToMovieVariablesBuilder {
(dynamic json) => AddDirectorToMovieData.fromJson(jsonDecode(json));
Serializer<AddDirectorToMovieVariables> varsSerializer =
(AddDirectorToMovieVariables vars) => jsonEncode(vars.toJson());
MutationRef<AddDirectorToMovieData, AddDirectorToMovieVariables> build() {
Future<OperationResult<AddDirectorToMovieData, AddDirectorToMovieVariables>>
execute() {
return this.ref().execute();
}

MutationRef<AddDirectorToMovieData, AddDirectorToMovieVariables> ref() {
AddDirectorToMovieVariables vars = AddDirectorToMovieVariables(
personId: _personId,
movieId: _movieId,
Expand All @@ -35,18 +40,6 @@ class AddDirectorToMovieVariablesBuilder {
}
}

class AddDirectorToMovie {
String name = "addDirectorToMovie";
AddDirectorToMovie({required this.dataConnect});
AddDirectorToMovieVariablesBuilder ref() {
return AddDirectorToMovieVariablesBuilder(
dataConnect,
);
}

FirebaseDataConnect dataConnect;
}

class AddDirectorToMovieDirectedByInsert {
String directedbyId;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,11 @@ class AddPersonVariablesBuilder {
(dynamic json) => AddPersonData.fromJson(jsonDecode(json));
Serializer<AddPersonVariables> varsSerializer =
(AddPersonVariables vars) => jsonEncode(vars.toJson());
MutationRef<AddPersonData, AddPersonVariables> build() {
Future<OperationResult<AddPersonData, AddPersonVariables>> execute() {
return this.ref().execute();
}

MutationRef<AddPersonData, AddPersonVariables> ref() {
AddPersonVariables vars = AddPersonVariables(
name: _name,
);
Expand All @@ -26,18 +30,6 @@ class AddPersonVariablesBuilder {
}
}

class AddPerson {
String name = "addPerson";
AddPerson({required this.dataConnect});
AddPersonVariablesBuilder ref() {
return AddPersonVariablesBuilder(
dataConnect,
);
}

FirebaseDataConnect dataConnect;
}

class AddPersonPersonInsert {
String id;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,11 @@ class AddTimestampVariablesBuilder {
(dynamic json) => AddTimestampData.fromJson(jsonDecode(json));
Serializer<AddTimestampVariables> varsSerializer =
(AddTimestampVariables vars) => jsonEncode(vars.toJson());
MutationRef<AddTimestampData, AddTimestampVariables> build() {
Future<OperationResult<AddTimestampData, AddTimestampVariables>> execute() {
return this.ref().execute();
}

MutationRef<AddTimestampData, AddTimestampVariables> ref() {
AddTimestampVariables vars = AddTimestampVariables(
timestamp: timestamp,
);
Expand All @@ -23,21 +27,6 @@ class AddTimestampVariablesBuilder {
}
}

class AddTimestamp {
String name = "addTimestamp";
AddTimestamp({required this.dataConnect});
AddTimestampVariablesBuilder ref({
required Timestamp timestamp,
}) {
return AddTimestampVariablesBuilder(
dataConnect,
timestamp: timestamp,
);
}

FirebaseDataConnect dataConnect;
}

class AddTimestampTimestampHolderInsert {
String id;

Expand Down
Loading
Loading