use of com.amplifyframework.testmodels.commentsblog.Post in project amplify-android by aws-amplify.
the class SQLiteStorageAdapterObserveQueryTest method querySavedDataWithMultiLevelJoins.
/**
* Test that querying the saved item with a foreign key
* also populates that instance variable with object.
*
* @throws DataStoreException On unexpected failure manipulating items in/out of DataStore
* @throws InterruptedException On unexpected failure manipulating items in/out of DataStore
*/
// @Test
public void querySavedDataWithMultiLevelJoins() throws DataStoreException, InterruptedException {
CountDownLatch latch = new CountDownLatch(1);
final BlogOwner blogOwner = BlogOwner.builder().name("Alan Turing").build();
final Blog blog = Blog.builder().name("Alan's Software Blog").owner(blogOwner).build();
final Post post = Post.builder().title("Alan's first post").status(PostStatus.ACTIVE).rating(2).blog(blog).build();
final Comment comment = Comment.builder().content("Alan's first comment").post(post).build();
adapter.save(blogOwner);
adapter.save(blog);
adapter.save(post);
adapter.save(comment);
Consumer<Cancelable> observationStarted = NoOpConsumer.create();
Consumer<DataStoreQuerySnapshot<Comment>> onQuerySnapshot = value -> {
assertTrue(value.getItems().contains(comment));
assertEquals(value.getItems().get(0).getPost(), post);
assertEquals(value.getItems().get(0).getPost().getBlog(), blog);
assertEquals(value.getItems().get(0).getPost().getBlog().getOwner(), blogOwner);
latch.countDown();
};
Consumer<DataStoreException> onObservationError = NoOpConsumer.create();
Action onObservationComplete = NoOpAction.create();
adapter.observeQuery(Comment.class, new ObserveQueryOptions(null, null), observationStarted, onQuerySnapshot, onObservationError, onObservationComplete);
assertTrue(latch.await(1, TimeUnit.SECONDS));
}
use of com.amplifyframework.testmodels.commentsblog.Post in project amplify-android by aws-amplify.
the class SQLiteStorageAdapterObserveQueryTest method querySavedDataWithStringPredicates.
/**
* Test querying the saved item in the SQLite database with
* predicate conditions.
*
* @throws DataStoreException On unexpected failure manipulating items in/out of DataStore
* @throws InterruptedException On unexpected failure manipulating items in/out of DataStore
*/
@Test
public void querySavedDataWithStringPredicates() throws DataStoreException, InterruptedException {
final List<Post> savedModels = new ArrayList<>();
BlogOwner blogOwner = BlogOwner.builder().name("Test Dummy").build();
adapter.save(blogOwner);
Blog blog = Blog.builder().name("Blogging for Dummies").owner(blogOwner).build();
adapter.save(blog);
final int numModels = 10;
for (int counter = 0; counter < numModels; counter++) {
final Post post = Post.builder().title(counter + "-title").status(PostStatus.INACTIVE).rating(counter).blog(blog).build();
adapter.save(post);
savedModels.add(post);
}
CountDownLatch latch = new CountDownLatch(1);
Consumer<Cancelable> observationStarted = NoOpConsumer.create();
Consumer<DataStoreQuerySnapshot<Post>> onQuerySnapshot = value -> {
assertTrue(value.getItems().contains(savedModels.get(4)));
assertTrue(value.getItems().contains(savedModels.get(7)));
assertFalse(value.getItems().contains(savedModels.get(9)));
latch.countDown();
};
Consumer<DataStoreException> onObservationError = NoOpConsumer.create();
Action onObservationComplete = NoOpAction.create();
adapter.observeQuery(Post.class, new ObserveQueryOptions(Post.TITLE.beginsWith("4").or(Post.TITLE.beginsWith("7")).or(Post.TITLE.beginsWith("9")).and(not(Post.TITLE.gt(8))), null), observationStarted, onQuerySnapshot, onObservationError, onObservationComplete);
assertTrue(latch.await(15, TimeUnit.SECONDS));
}
use of com.amplifyframework.testmodels.commentsblog.Post in project amplify-android by aws-amplify.
the class SQLiteStorageAdapterQueryTest method querySavedDataWithStringPredicates.
/**
* Test querying the saved item in the SQLite database with
* predicate conditions.
* @throws DataStoreException On unexpected failure manipulating items in/out of DataStore
*/
@Test
public void querySavedDataWithStringPredicates() throws DataStoreException {
final List<Post> savedModels = new ArrayList<>();
BlogOwner blogOwner = BlogOwner.builder().name("Test Dummy").build();
adapter.save(blogOwner);
Blog blog = Blog.builder().name("Blogging for Dummies").owner(blogOwner).build();
adapter.save(blog);
final int numModels = 10;
for (int counter = 0; counter < numModels; counter++) {
final Post post = Post.builder().title(counter + "-title").status(PostStatus.INACTIVE).rating(counter).blog(blog).build();
adapter.save(post);
savedModels.add(post);
}
final List<Post> actualPosts = adapter.query(Post.class, Where.matches(Post.TITLE.beginsWith("4").or(Post.TITLE.beginsWith("7")).or(Post.TITLE.beginsWith("9")).and(not(Post.TITLE.gt(8)))));
assertEquals(Observable.fromArray(4, 7).map(savedModels::get).toList().map(HashSet::new).blockingGet(), Observable.fromIterable(actualPosts).toList().map(HashSet::new).blockingGet());
}
use of com.amplifyframework.testmodels.commentsblog.Post in project amplify-android by aws-amplify.
the class SQLiteStorageAdapterQueryTest method querySavedDataWithMultiLevelJoins.
/**
* Test that querying the saved item with a foreign key
* also populates that instance variable with object.
* @throws DataStoreException On unexpected failure manipulating items in/out of DataStore
*/
@Test
public void querySavedDataWithMultiLevelJoins() throws DataStoreException {
final BlogOwner blogOwner = BlogOwner.builder().name("Alan Turing").build();
final Blog blog = Blog.builder().name("Alan's Software Blog").owner(blogOwner).build();
final Post post = Post.builder().title("Alan's first post").status(PostStatus.ACTIVE).rating(2).blog(blog).build();
final Comment comment = Comment.builder().content("Alan's first comment").post(post).build();
adapter.save(blogOwner);
adapter.save(blog);
adapter.save(post);
adapter.save(comment);
final List<Comment> comments = adapter.query(Comment.class);
assertTrue(comments.contains(comment));
assertEquals(comments.get(0).getPost(), post);
assertEquals(comments.get(0).getPost().getBlog(), blog);
assertEquals(comments.get(0).getPost().getBlog().getOwner(), blogOwner);
}
use of com.amplifyframework.testmodels.commentsblog.Post in project amplify-android by aws-amplify.
the class SQLiteStorageAdapterQueryTest method querySavedDataWithNumericalPredicates.
/**
* Test querying the saved item in the SQLite database with
* predicate conditions.
* @throws DataStoreException On unexpected failure manipulating items in/out of DataStore
*/
@Test
public void querySavedDataWithNumericalPredicates() throws DataStoreException {
final List<Post> savedModels = new ArrayList<>();
final int numModels = 10;
BlogOwner blogOwner = BlogOwner.builder().name("Test Dummy").build();
adapter.save(blogOwner);
Blog blog = Blog.builder().name("Blogging for Dummies").owner(blogOwner).build();
adapter.save(blog);
for (int counter = 0; counter < numModels; counter++) {
final Post post = Post.builder().title("titlePrefix:" + counter).status(PostStatus.INACTIVE).rating(counter).blog(blog).build();
adapter.save(post);
savedModels.add(post);
}
// 1, 4, 5, 6
QueryPredicate predicate = Post.RATING.ge(4).and(Post.RATING.lt(7)).or(Post.RATING.eq(1).and(Post.RATING.ne(7)));
assertEquals(Observable.fromArray(1, 4, 5, 6).map(savedModels::get).toList().map(HashSet::new).blockingGet(), Observable.fromIterable(adapter.query(Post.class, Where.matches(predicate))).toList().map(HashSet::new).blockingGet());
}
Aggregations