private D createNewDatabase() throws IOException { D database = getDatabase(); for (Integer g = 0; g < 5; g++){ G group = database.getRootGroup().addGroup(database.newGroup(g.toString())); for (int e = 0; e <= g; e++) { group.addEntry(entryFactory(database, g.toString(), e)); } } return database; }
public void saveKdbx() throws IOException { // create an empty database D database = getDatabase(); // add some groups and entries for (Integer g = 0; g < 5; g++) { G group = database.getRootGroup().addGroup(database.newGroup(g.toString())); for (int e = 0; e <= g; e++) { // entry factory is a local helper to populate an entry group.addEntry(entryFactory(database, g.toString(), e)); } } // save to a file with password "123" try (FileOutputStream outputStream = new FileOutputStream("testOutput/test.kdbx")) { database.save(new KdbxCreds("123".getBytes()), outputStream); } }
/** * Group by title */ public G groupByTitle(D database) { List<? extends E> entries = database.findEntries(new Entry.Matcher() { @Override public boolean matches(Entry entry) { return entry.getProperty(Entry.STANDARD_PROPERTY_NAME_TITLE).toLowerCase().contains("findme!"); } }); // create a new group using DB factory method G newParent = database.newGroup("Found entries"); // iterate over the found entries for (E entry : entries) { // copy the entry using DB factory so it remains where it was found as well as being in new group E copy = database.newEntry(entry); // add new entry to new group newParent.addEntry(copy); } return newParent; }
@Override public boolean deleteEntry(final UUID uuid) { E e = findEntry(uuid); if (e == null) { return false; } e.getParent().removeEntry(e); if (isRecycleBinEnabled()) { getRecycleBin().addEntry(e); } return true; }
@Test public void testAddRemoveEntry() { E e1 = database.getRootGroup().addEntry(database.newEntry()); e1.setTitle("entry1"); List<? extends E> l1 = database.findEntries("entry1"); Assert.assertTrue(l1.size() == 1); E e12 = database.getRootGroup().addEntry(database.newEntry("entry12")); List<? extends E> l2 = database.findEntries("entry1"); Assert.assertTrue(l2.size() == 2); // show that the entries are different Assert.assertFalse(l2.get(0).equals(l2.get(1))); // show that the list is a copy l2.clear(); Assert.assertTrue(database.findEntries("entry1").size() == 2); // show that we get an equivalent entry when we remove to when we inserted Entry e12b = database.getRootGroup().removeEntry(e12); Assert.assertTrue(e12b.equals(e12)); // has been unhooked from parent Assert.assertTrue(e12.getParent() == null); Assert.assertTrue(database.findEntries("entry1").size() == 1); }
entry.setProperty("SubmitUrl", r.SubmitUrl); database.getRootGroup().addEntry(entry); try { database.save(adaptor.getCredentials(), adaptor.getOutputStream());
throw new IllegalStateException("Entry belongs to group that does not exist"); group.addEntry(entry); break; case 0x0003:
@Test public void recycleBinEntries() { database.enableRecycleBin(false); assertFalse(database.isRecycleBinEnabled()); assertNull(database.getRecycleBin()); database.enableRecycleBin(true); assertTrue(database.isRecycleBinEnabled()); G recycleBin = database.getRecycleBin(); assertNotNull(recycleBin); E entry = database.newEntry(); assertEquals(entry, database.getRootGroup().addEntry(entry)); assertEquals(1, database.getRootGroup().getEntriesCount()); assertTrue(database.deleteEntry(entry.getUuid())); assertEquals(0, database.getRootGroup().getEntriesCount()); assertEquals(1, recycleBin.getEntriesCount()); database.enableRecycleBin(false); assertFalse(database.isRecycleBinEnabled()); entry = database.newEntry(); assertEquals(entry, database.getRootGroup().addEntry(entry)); assertEquals(1, database.getRootGroup().getEntriesCount()); assertTrue(database.deleteEntry(entry.getUuid())); assertEquals(0, database.getRootGroup().getEntriesCount()); assertEquals(1, recycleBin.getEntriesCount()); database.emptyRecycleBin(); assertEquals(0, recycleBin.getEntriesCount()); }