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; }
/** * Splice - add a group from one database to a parent from another (or copy from the same db) */ public void splice(G newParent, Group<?, ?, ?, ?> groupToSplice) { G addedGroup = newParent.addGroup(newParent.getDatabase().newGroup(groupToSplice)); addedGroup.copy(groupToSplice); }
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; }
@Test public void testDeleteGroup () { Group<D,G,E,I> g1 = database.getRootGroup().addGroup(database.newGroup("group1")); List<? extends G> l1 = database.getRootGroup().findGroups("group1"); Assert.assertTrue(l1.size() == 1); G g2 = l1.get(0); Assert.assertTrue (g2.equals(g1)); Group g3 = database.getRootGroup().removeGroup(g2); Assert.assertTrue (g3.equals(g1)); Assert.assertTrue(g1.getParent() == null); Assert.assertTrue(database.getRootGroup().getGroups().size() == 0); Assert.assertTrue(database.getRootGroup().findGroups("group1").size() == 0); }
@Test public void testAddGroup() { Group g1 = database.getRootGroup().addGroup(database.newGroup("group1")); Assert.assertTrue (database.getRootGroup().getGroups().size() == 1); Assert.assertTrue (g1.getName().equals("group1")); Assert.assertTrue (g1.getGroups().size() == 0); Assert.assertTrue (g1.getEntries().size() == 0); Assert.assertTrue("root is not the parent of its child", g1.getParent().equals(database.getRootGroup())); Group g2 = database.newGroup(); assertEquals("", g2.getName()); Assert.assertNotNull(g2.getUuid()); assertEquals(0, g2.getIcon().getIndex()); assertEquals(0, g2.getGroups().size()); assertEquals(0, g2.getEntries().size()); // show that the list of groups is a copy database.getRootGroup().getGroups().clear(); Assert.assertTrue(database.getRootGroup().getGroups().size() == 1); Assert.assertTrue (g1.getEntries().size() == 0); }
@Override public void copy(Group<? extends Database, ? extends Group, ? extends Entry, ? extends Icon> parent) { for (Group<?,?,?,?> child : parent.getGroups()) { G addedGroup = addGroup(this.getDatabase().newGroup(child)); addedGroup.copy(child); } for (Entry entry : parent.getEntries()) { addEntry(this.getDatabase().newEntry(entry)); } }
@Test public void recycleBinGroups() { database.enableRecycleBin(true); assertTrue(database.isRecycleBinEnabled()); G recycleBin = database.getRecycleBin(); assertNotNull(recycleBin); G group= database.newGroup(); assertEquals(group, database.getRootGroup().addGroup(group)); assertEquals(2, database.getRootGroup().getGroupsCount()); assertTrue(database.deleteGroup(group.getUuid())); assertEquals(1, database.getRootGroup().getGroupsCount()); assertEquals(1, recycleBin.getGroupsCount()); database.enableRecycleBin(false); assertFalse(database.isRecycleBinEnabled()); group = database.newGroup(); assertEquals(group, database.getRootGroup().addGroup(group)); assertEquals(2, database.getRootGroup().getGroupsCount()); assertTrue(database.deleteGroup(group.getUuid())); assertEquals(1, database.getRootGroup().getGroupsCount()); assertEquals(1, recycleBin.getGroupsCount()); database.emptyRecycleBin(); assertEquals(0, recycleBin.getGroupsCount()); }