@Override public List<ObjectId> lookUp(String partialId) { return subject.get().lookUp(partialId); }
@Override public List<ObjectId> lookUp(String partialId) { return subject.get().lookUp(partialId); }
List<ObjectId> hashMatches = source.lookUp(refSpec); if (hashMatches.size() > 1) { throw new IllegalArgumentException(
List<ObjectId> hashMatches = source.lookUp(refSpec); if (hashMatches.size() > 1) { throw new IllegalArgumentException(
@Test public void testLookUp() { final ObjectId id1 = ObjectId.valueOf("0123456700000000000000000000000000000000"); final ObjectId id2 = ObjectId.valueOf("0123456780000000000000000000000000000000"); final ObjectId id3 = ObjectId.valueOf("0123456789000000000000000000000000000000"); final ObjectId id4 = ObjectId.valueOf("0123456789a00000000000000000000000000000"); final ObjectId id5 = ObjectId.valueOf("0123456789ab0000000000000000000000000000"); assertTrue(db.put(featureForceId(id1, "f1"))); assertTrue(db.put(featureForceId(id2, "f2"))); assertTrue(db.put(featureForceId(id3, "f3"))); assertTrue(db.put(featureForceId(id4, "f4"))); assertTrue(db.put(featureForceId(id5, "f5"))); HashSet<ObjectId> matches; matches = Sets.newHashSet(db.lookUp("00000000")); assertEquals(Sets.newHashSet(), matches); matches = Sets.newHashSet(db.lookUp("ffffffff")); assertEquals(Sets.newHashSet(), matches); matches = Sets.newHashSet(db.lookUp("01234567")); assertEquals(Sets.newHashSet(id1, id2, id3, id4, id5), matches); matches = Sets.newHashSet(db.lookUp("012345678")); assertEquals(Sets.newHashSet(id2, id3, id4, id5), matches); matches = Sets.newHashSet(db.lookUp("0123456789")); assertEquals(Sets.newHashSet(id3, id4, id5), matches); matches = Sets.newHashSet(db.lookUp("0123456789a")); assertEquals(Sets.newHashSet(id4, id5), matches); matches = Sets.newHashSet(db.lookUp("0123456789ab")); assertEquals(Sets.newHashSet(id5), matches); matches = Sets.newHashSet(db.lookUp("0123456789abc")); assertEquals(Sets.newHashSet(), matches); }
@Test public void testLookUp() { final ObjectId id1 = ObjectId.valueOf("0123456700000000000000000000000000000000"); final ObjectId id2 = ObjectId.valueOf("0123456780000000000000000000000000000000"); final ObjectId id3 = ObjectId.valueOf("0123456789000000000000000000000000000000"); final ObjectId id4 = ObjectId.valueOf("0123456789a00000000000000000000000000000"); final ObjectId id5 = ObjectId.valueOf("0123456789ab0000000000000000000000000000"); assertTrue(db.put(featureForceId(id1, "f1"))); assertTrue(db.put(featureForceId(id2, "f2"))); assertTrue(db.put(featureForceId(id3, "f3"))); assertTrue(db.put(featureForceId(id4, "f4"))); assertTrue(db.put(featureForceId(id5, "f5"))); HashSet<ObjectId> matches; matches = Sets.newHashSet(db.lookUp("00000000")); assertEquals(Sets.newHashSet(), matches); matches = Sets.newHashSet(db.lookUp("ffffffff")); assertEquals(Sets.newHashSet(), matches); matches = Sets.newHashSet(db.lookUp("01234567")); assertEquals(Sets.newHashSet(id1, id2, id3, id4, id5), matches); matches = Sets.newHashSet(db.lookUp("012345678")); assertEquals(Sets.newHashSet(id2, id3, id4, id5), matches); matches = Sets.newHashSet(db.lookUp("0123456789")); assertEquals(Sets.newHashSet(id3, id4, id5), matches); matches = Sets.newHashSet(db.lookUp("0123456789a")); assertEquals(Sets.newHashSet(id4, id5), matches); matches = Sets.newHashSet(db.lookUp("0123456789ab")); assertEquals(Sets.newHashSet(id5), matches); matches = Sets.newHashSet(db.lookUp("0123456789abc")); assertEquals(Sets.newHashSet(), matches); }
@Test public void testLookUpPrecondition() { final ObjectId id1 = ObjectId.valueOf("0123456700000000000000000000000000000000"); final ObjectId id2 = ObjectId.valueOf("01234567abc00000000000000000000000000000"); assertTrue(db.put(featureForceId(id1, "f1"))); assertTrue(db.put(featureForceId(id2, "f2"))); final String fullId = id1.toString(); for (int i = 0; i < 7; i++) { try { String partialId = fullId.substring(0, i); db.lookUp(partialId); } catch (IllegalArgumentException e) { assertTrue(e.getMessage(), e.getMessage().contains("must be at least 8 characters long")); } } List<ObjectId> found = db.lookUp(fullId.substring(0, 9)); assertNotNull(found); assertEquals(found.toString(), 1, found.size()); assertEquals(found.toString(), id1, found.get(0)); }
@Test public void testLookUpPrecondition() { final ObjectId id1 = ObjectId.valueOf("0123456700000000000000000000000000000000"); final ObjectId id2 = ObjectId.valueOf("01234567abc00000000000000000000000000000"); assertTrue(db.put(featureForceId(id1, "f1"))); assertTrue(db.put(featureForceId(id2, "f2"))); final String fullId = id1.toString(); for (int i = 0; i < 7; i++) { try { String partialId = fullId.substring(0, i); db.lookUp(partialId); } catch (IllegalArgumentException e) { assertTrue(e.getMessage(), e.getMessage().contains("must be at least 8 characters long")); } } List<ObjectId> found = db.lookUp(fullId.substring(0, 9)); assertNotNull(found); assertEquals(found.toString(), 1, found.size()); assertEquals(found.toString(), id1, found.get(0)); }
@Test public void testChecksClosed() { db.close(); checkClosed(() -> db.delete(ObjectId.NULL)); checkClosed(() -> db.deleteAll(emptyIterator())); checkClosed(() -> db.deleteAll(emptyIterator(), NOOP_LISTENER)); checkClosed(() -> db.exists(RevTree.EMPTY_TREE_ID)); checkClosed(() -> db.get(RevTree.EMPTY_TREE_ID)); checkClosed(() -> db.get(RevTree.EMPTY_TREE_ID, RevTree.class)); checkClosed(() -> db.getAll(ImmutableList.of())); checkClosed(() -> db.getAll(ImmutableList.of(), NOOP_LISTENER)); checkClosed(() -> db.getAll(ImmutableList.of(), NOOP_LISTENER, RevTree.class)); checkClosed(() -> db.getIfPresent(ObjectId.NULL)); checkClosed(() -> db.getIfPresent(RevTree.EMPTY_TREE_ID, RevTree.class)); checkClosed(() -> db.lookUp("abcd1234")); checkClosed(() -> db.put(RevTree.EMPTY)); checkClosed(() -> db.putAll(emptyIterator())); checkClosed(() -> db.putAll(emptyIterator(), NOOP_LISTENER)); }
@Test public void testChecksClosed() { db.close(); checkClosed(() -> db.delete(ObjectId.NULL)); checkClosed(() -> db.deleteAll(emptyIterator())); checkClosed(() -> db.deleteAll(emptyIterator(), NOOP_LISTENER)); checkClosed(() -> db.exists(RevTree.EMPTY_TREE_ID)); checkClosed(() -> db.get(RevTree.EMPTY_TREE_ID)); checkClosed(() -> db.get(RevTree.EMPTY_TREE_ID, RevTree.class)); checkClosed(() -> db.getAll(ImmutableList.of())); checkClosed(() -> db.getAll(ImmutableList.of(), NOOP_LISTENER)); checkClosed(() -> db.getAll(ImmutableList.of(), NOOP_LISTENER, RevTree.class)); checkClosed(() -> db.getIfPresent(ObjectId.NULL)); checkClosed(() -> db.getIfPresent(RevTree.EMPTY_TREE_ID, RevTree.class)); checkClosed(() -> db.lookUp("abcd1234")); checkClosed(() -> db.put(RevTree.EMPTY)); checkClosed(() -> db.putAll(emptyIterator())); checkClosed(() -> db.putAll(emptyIterator(), NOOP_LISTENER)); }
@Test public void testChecksNullArgs() { checkNullArgument(() -> db.delete(null)); checkNullArgument(() -> db.deleteAll(null)); checkNullArgument(() -> db.deleteAll(null, NOOP_LISTENER)); checkNullArgument(() -> db.deleteAll(emptyIterator(), null)); checkNullArgument(() -> db.exists(null)); checkNullArgument(() -> db.get(null)); checkNullArgument(() -> db.get(null, RevTree.class)); checkNullArgument(() -> db.get(RevTree.EMPTY_TREE_ID, null)); checkNullArgument(() -> db.getAll(null)); checkNullArgument(() -> db.getAll(null, NOOP_LISTENER)); checkNullArgument(() -> db.getAll(ImmutableList.of(), NOOP_LISTENER, null)); checkNullArgument(() -> db.getAll(ImmutableList.of(), null)); checkNullArgument(() -> db.getIfPresent(null)); checkNullArgument(() -> db.getIfPresent(null, RevTree.class)); checkNullArgument(() -> db.getIfPresent(RevTree.EMPTY_TREE_ID, null)); checkNullArgument(() -> db.lookUp(null)); checkNullArgument(() -> db.put(null)); checkNullArgument(() -> db.putAll(null)); checkNullArgument(() -> db.putAll(null, NOOP_LISTENER)); checkNullArgument(() -> db.putAll(emptyIterator(), null)); }
@Test public void testChecksNullArgs() { checkNullArgument(() -> db.delete(null)); checkNullArgument(() -> db.deleteAll(null)); checkNullArgument(() -> db.deleteAll(null, NOOP_LISTENER)); checkNullArgument(() -> db.deleteAll(emptyIterator(), null)); checkNullArgument(() -> db.exists(null)); checkNullArgument(() -> db.get(null)); checkNullArgument(() -> db.get(null, RevTree.class)); checkNullArgument(() -> db.get(RevTree.EMPTY_TREE_ID, null)); checkNullArgument(() -> db.getAll(null)); checkNullArgument(() -> db.getAll(null, NOOP_LISTENER)); checkNullArgument(() -> db.getAll(ImmutableList.of(), NOOP_LISTENER, null)); checkNullArgument(() -> db.getAll(ImmutableList.of(), null)); checkNullArgument(() -> db.getIfPresent(null)); checkNullArgument(() -> db.getIfPresent(null, RevTree.class)); checkNullArgument(() -> db.getIfPresent(RevTree.EMPTY_TREE_ID, null)); checkNullArgument(() -> db.lookUp(null)); checkNullArgument(() -> db.put(null)); checkNullArgument(() -> db.putAll(null)); checkNullArgument(() -> db.putAll(null, NOOP_LISTENER)); checkNullArgument(() -> db.putAll(emptyIterator(), null)); }