Search in sources :

Example 11 with Key

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));
}
Also used : Datastore(org.mongodb.morphia.Datastore) Key(org.mongodb.morphia.Key) Test(org.junit.Test)

Example 12 with 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));
}
Also used : Datastore(org.mongodb.morphia.Datastore) ArrayList(java.util.ArrayList) Key(org.mongodb.morphia.Key)

Example 13 with Key

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));
}
Also used : MappedField(org.mongodb.morphia.mapping.MappedField) Mapper(org.mongodb.morphia.mapping.Mapper) ObjectId(org.bson.types.ObjectId) SimpleEntity(org.mongodb.morphia.entities.SimpleEntity) ArrayList(java.util.ArrayList) MappedClass(org.mongodb.morphia.mapping.MappedClass) Key(org.mongodb.morphia.Key) Test(org.junit.Test)

Example 14 with Key

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));
}
Also used : MappedField(org.mongodb.morphia.mapping.MappedField) Mapper(org.mongodb.morphia.mapping.Mapper) ObjectId(org.bson.types.ObjectId) ArrayList(java.util.ArrayList) MappedClass(org.mongodb.morphia.mapping.MappedClass) Key(org.mongodb.morphia.Key) Test(org.junit.Test)

Example 15 with Key

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());
    }
}
Also used : KeysKeysKeys(org.mongodb.morphia.TestDatastore.KeysKeysKeys) ArrayList(java.util.ArrayList) Key(org.mongodb.morphia.Key) FacebookUser(org.mongodb.morphia.TestDatastore.FacebookUser) Test(org.junit.Test)

Aggregations

Key (org.mongodb.morphia.Key)25 DBObject (com.mongodb.DBObject)13 ArrayList (java.util.ArrayList)11 Test (org.junit.Test)8 BasicDBObject (com.mongodb.BasicDBObject)7 MappedField (org.mongodb.morphia.mapping.MappedField)5 ProxiedEntityReference (org.mongodb.morphia.mapping.lazy.proxy.ProxiedEntityReference)5 DBRef (com.mongodb.DBRef)4 Map (java.util.Map)3 ObjectId (org.bson.types.ObjectId)3 FacebookUser (org.mongodb.morphia.TestDatastore.FacebookUser)3 MappedClass (org.mongodb.morphia.mapping.MappedClass)3 Mapper (org.mongodb.morphia.mapping.Mapper)3 ReflectionUtils.getParameterizedClass (org.mongodb.morphia.utils.ReflectionUtils.getParameterizedClass)3 BasicDBList (com.mongodb.BasicDBList)2 HashMap (java.util.HashMap)2 List (java.util.List)2 Datastore (org.mongodb.morphia.Datastore)2 KeysKeysKeys (org.mongodb.morphia.TestDatastore.KeysKeysKeys)2 Reference (org.mongodb.morphia.annotations.Reference)2