use of org.mongodb.morphia.Key in project morphia by mongodb.
the class KeyMappingTest method keyMapping.
@Test
public void keyMapping() {
getMorphia().map(User.class, Channel.class);
insertData();
final Datastore datastore = getDs();
User user = datastore.find(User.class).get();
List<Key<Channel>> followedChannels = user.followedChannels;
Channel channel = datastore.find(Channel.class).filter("name", "Sport channel").get();
Key<Channel> key = datastore.getKey(channel);
Assert.assertTrue(followedChannels.contains(key));
}
use of org.mongodb.morphia.Key in project morphia by mongodb.
the class KeyMappingTest method insertData.
private void insertData() {
final Datastore datastore = getDs();
Channel sportChannel = new Channel("Sport channel");
datastore.save(sportChannel);
datastore.save(new Channel("Art channel"));
Channel fitnessChannel = new Channel("Fitness channel");
datastore.save(fitnessChannel);
final List<Key<Channel>> followedChannels = new ArrayList<Key<Channel>>();
followedChannels.add(datastore.getKey(sportChannel));
followedChannels.add(datastore.getKey(fitnessChannel));
datastore.save(new User("Roberto", datastore.getKey(sportChannel), followedChannels));
}
use of org.mongodb.morphia.Key in project morphia by mongodb.
the class QueryValidatorTest method shouldNotAllowNonKeyTypeWithKeyValue.
@Test
public void shouldNotAllowNonKeyTypeWithKeyValue() {
// expect
MappedClass mappedClass = new MappedClass(EntityWithListsAndArrays.class, new Mapper());
MappedField mappedField = mappedClass.getMappedField("listOfIntegers");
assertThat(QueryValidator.isCompatibleForOperator(mappedClass, mappedField, SimpleEntity.class, EQUAL, new Key<String>(String.class, "kind", new ObjectId()), new ArrayList<ValidationFailure>()), is(false));
}
use of org.mongodb.morphia.Key in project morphia by mongodb.
the class QueryValidatorTest method shouldAllowTypeThatMatchesKeyTypeValue.
@Test
public void shouldAllowTypeThatMatchesKeyTypeValue() {
// expect
MappedClass mappedClass = new MappedClass(SimpleEntity.class, new Mapper());
MappedField mappedField = mappedClass.getMappedField("integer");
assertThat(QueryValidator.isCompatibleForOperator(mappedClass, mappedField, Integer.class, EQUAL, new Key<Number>(Integer.class, "Integer", new ObjectId()), new ArrayList<ValidationFailure>()), is(true));
}
use of org.mongodb.morphia.Key in project morphia by mongodb.
the class TestQuery method testKeyListLookups.
@Test
public void testKeyListLookups() {
final FacebookUser fbUser1 = new FacebookUser(1, "scott");
final FacebookUser fbUser2 = new FacebookUser(2, "tom");
final FacebookUser fbUser3 = new FacebookUser(3, "oli");
final FacebookUser fbUser4 = new FacebookUser(4, "frank");
final Iterable<Key<FacebookUser>> fbKeys = getDs().save(asList(fbUser1, fbUser2, fbUser3, fbUser4));
assertEquals(1, fbUser1.getId());
final List<Key<FacebookUser>> fbUserKeys = new ArrayList<Key<FacebookUser>>();
for (final Key<FacebookUser> key : fbKeys) {
fbUserKeys.add(key);
}
assertEquals(fbUser1.getId(), fbUserKeys.get(0).getId());
assertEquals(fbUser2.getId(), fbUserKeys.get(1).getId());
assertEquals(fbUser3.getId(), fbUserKeys.get(2).getId());
assertEquals(fbUser4.getId(), fbUserKeys.get(3).getId());
final KeysKeysKeys k1 = new KeysKeysKeys(null, fbUserKeys);
final Key<KeysKeysKeys> k1Key = getDs().save(k1);
assertEquals(k1.getId(), k1Key.getId());
final KeysKeysKeys k1Reloaded = getDs().get(k1);
final KeysKeysKeys k1Loaded = getDs().getByKey(KeysKeysKeys.class, k1Key);
assertNotNull(k1Reloaded);
assertNotNull(k1Loaded);
for (final Key<FacebookUser> key : k1Loaded.getUsers()) {
assertNotNull(key.getId());
}
assertEquals(4, k1Loaded.getUsers().size());
final List<FacebookUser> fbUsers = getDs().getByKeys(FacebookUser.class, k1Loaded.getUsers());
assertEquals(4, fbUsers.size());
for (final FacebookUser fbUser : fbUsers) {
assertNotNull(fbUser);
assertNotNull(fbUser.getId());
assertNotNull(fbUser.getUsername());
}
}
Aggregations