use of org.springframework.cloud.gcp.data.firestore.entities.User in project spring-cloud-gcp by spring-cloud.
the class FirestoreRepositoryIntegrationTests method containsFilterQueryTest.
@Test
public void containsFilterQueryTest() {
User u1 = new User("Cloud", 22, Arrays.asList("cat", "dog"));
User u2 = new User("Squall", 17, Collections.singletonList("pony"));
Flux<User> users = Flux.fromArray(new User[] { u1, u2 });
this.userRepository.saveAll(users).blockLast();
List<String> pagedUsers = this.userRepository.findByPetsContains(Arrays.asList("cat", "dog")).map(User::getName).collectList().block();
assertThat(pagedUsers).containsExactly("Cloud");
pagedUsers = this.userRepository.findByPetsContains(Arrays.asList("cat", "pony")).map(User::getName).collectList().block();
assertThat(pagedUsers).containsExactlyInAnyOrder("Cloud", "Squall");
pagedUsers = this.userRepository.findByAgeAndPetsContains(17, Arrays.asList("cat", "pony")).map(User::getName).collectList().block();
assertThat(pagedUsers).containsExactlyInAnyOrder("Squall");
pagedUsers = this.userRepository.findByPetsContainsAndAgeIn("cat", Arrays.asList(22, 23)).map(User::getName).collectList().block();
assertThat(pagedUsers).containsExactlyInAnyOrder("Cloud");
}
use of org.springframework.cloud.gcp.data.firestore.entities.User in project spring-cloud-gcp by spring-cloud.
the class FirestoreRepositoryIntegrationTests method testDoubleSub.
@Test
public void testDoubleSub() {
User alice = new User("Alice", 29);
User bob = new User("Bob", 60);
this.userRepository.save(alice).then(this.userRepository.save(bob)).block();
Mono<User> aUser = this.userRepository.findByAge(29).next();
Flux<String> stringFlux = userRepository.findAll().flatMap(user -> aUser.flatMap(user1 -> Mono.just(user.getName() + " " + user1.getName())));
List<String> list = stringFlux.collectList().block();
assertThat(list).contains("Alice Alice", "Bob Alice");
}
use of org.springframework.cloud.gcp.data.firestore.entities.User in project spring-cloud-gcp by spring-cloud.
the class FirestoreIntegrationTests method deleteTest.
@Test
public void deleteTest() {
this.firestoreTemplate.save(new User("alpha", 45)).block();
this.firestoreTemplate.save(new User("beta", 23)).block();
this.firestoreTemplate.save(new User("gamma", 44)).block();
this.firestoreTemplate.save(new User("Joe Hogan", 22)).block();
assertThat(this.firestoreTemplate.count(User.class).block()).isEqualTo(4);
this.firestoreTemplate.delete(Mono.just(new User("alpha", 45))).block();
assertThat(this.firestoreTemplate.findAll(User.class).map(User::getName).collectList().block()).containsExactlyInAnyOrder("beta", "gamma", "Joe Hogan");
this.firestoreTemplate.deleteById(Mono.just("beta"), User.class).block();
assertThat(this.firestoreTemplate.findAll(User.class).map(User::getName).collectList().block()).containsExactlyInAnyOrder("gamma", "Joe Hogan");
this.firestoreTemplate.deleteAll(User.class).block();
assertThat(this.firestoreTemplate.count(User.class).block()).isEqualTo(0);
}
use of org.springframework.cloud.gcp.data.firestore.entities.User in project spring-cloud-gcp by spring-cloud.
the class FirestoreIntegrationTests method saveAllTest.
@Test
public void saveAllTest() {
User u1 = new User("Cloud", 22);
User u2 = new User("Squall", 17);
Flux<User> users = Flux.fromArray(new User[] { u1, u2 });
assertThat(this.firestoreTemplate.count(User.class).block()).isEqualTo(0);
this.firestoreTemplate.saveAll(users).blockLast();
assertThat(this.firestoreTemplate.count(User.class).block()).isEqualTo(2);
assertThat(this.firestoreTemplate.deleteAll(User.class).block()).isEqualTo(2);
}
use of org.springframework.cloud.gcp.data.firestore.entities.User in project spring-cloud-gcp by spring-cloud.
the class FirestoreIntegrationTests method writeReadDeleteTest.
@Test
public void writeReadDeleteTest() {
User alice = new User("Alice", 29);
User bob = new User("Bob", 60);
this.firestoreTemplate.save(alice).block();
this.firestoreTemplate.save(bob).block();
assertThat(this.firestoreTemplate.findById(Mono.just("Saitama"), User.class).block()).isNull();
assertThat(this.firestoreTemplate.findById(Mono.just("Bob"), User.class).block()).isEqualTo(bob);
assertThat(this.firestoreTemplate.findAllById(Flux.just("Bob", "Saitama", "Alice"), User.class).collectList().block()).containsExactlyInAnyOrder(bob, alice);
List<User> usersBeforeDelete = this.firestoreTemplate.findAll(User.class).collectList().block();
assertThat(this.firestoreTemplate.count(User.class).block()).isEqualTo(2);
this.firestoreTemplate.delete(Mono.just(bob)).block();
assertThat(this.firestoreTemplate.count(User.class).block()).isEqualTo(1);
assertThat(this.firestoreTemplate.existsById(Mono.just("Alice"), User.class).block()).isEqualTo(Boolean.TRUE);
assertThat(this.firestoreTemplate.existsById(Mono.just("Bob"), User.class).block()).isEqualTo(Boolean.FALSE);
this.firestoreTemplate.deleteById(Mono.just("Alice"), User.class).block();
assertThat(this.firestoreTemplate.count(User.class).block()).isEqualTo(0);
this.firestoreTemplate.save(alice).block();
this.firestoreTemplate.save(bob).block();
assertThat(this.firestoreTemplate.deleteAll(User.class).block()).isEqualTo(2);
assertThat(usersBeforeDelete).containsExactlyInAnyOrder(alice, bob);
assertThat(this.firestoreTemplate.findAll(User.class).collectList().block()).isEmpty();
// tag::subcollection[]
FirestoreReactiveOperations bobTemplate = this.firestoreTemplate.withParent(new User("Bob", 60));
PhoneNumber phoneNumber = new PhoneNumber("111-222-333");
bobTemplate.save(phoneNumber).block();
assertThat(bobTemplate.findAll(PhoneNumber.class).collectList().block()).containsExactly(phoneNumber);
bobTemplate.deleteAll(PhoneNumber.class).block();
assertThat(bobTemplate.findAll(PhoneNumber.class).collectList().block()).isEmpty();
// end::subcollection[]
}
Aggregations