@Test public void testNotEqualsAge() throws Exception { DBSession pojoDb = sessionFactory.createSession(); EntityBag bag = pojoDb.createOrGetBag("inverted"); try { for(int age = 0; age < MAX_AGE; age++) { QueryExecutor executor = bag.find(QueryBuilder.createBuilder().field("age").notEquals(age)); long start = System.nanoTime(); long end = System.nanoTime(); long passed = end - start; LOG.info("Query execution took: {}", passed); try (QueryResult result = executor.execute()) { int expected = NUMBER_ENTITIES - ageAmounts.get((long) age); for (Entity entity : result) { assertThat(entity.getValue("age").toString(), not(equalTo(String.valueOf(age)))); } assertThat(result.size(), is((long) expected)); } } } finally { pojoDb.closeSession(); JasDBMain.shutdown(); } }
@Test public void testCreateAndGetInstanceBag() throws JasDBException, IOException { DBSession session = sessionFactory.createSession(); session.addInstance(MY_INSTANCE); session.createOrGetBag(MY_INSTANCE, BAG_1); //default instance should be null assertNull(session.getBag(BAG_1)); assertNotNull(MY_INSTANCE, session.getBag(MY_INSTANCE, BAG_1)); }
@Test public void testDeleteInstance() throws JasDBException, IOException { DBSession session = sessionFactory.createSession(); File instanceFolder = new File(storageLocation + "/.jasdb/myInstance"); session.addAndSwitchInstance(MY_INSTANCE); assertEquals(MY_INSTANCE, session.getInstanceId()); session.createOrGetBag(BAG_1); session.createOrGetBag("bag2"); assertTrue(new File(instanceFolder, "bag1.pjs").exists()); assertTrue(new File(instanceFolder, "bag2.pjs").exists()); session.switchInstance("default"); session.deleteInstance(MY_INSTANCE); assertFalse(new File(instanceFolder, "bag1.pjs").exists()); assertFalse(new File(instanceFolder, "bag1.idx").exists()); assertFalse(new File(instanceFolder, "bag2.pjs").exists()); assertFalse(new File(instanceFolder, "bag2.idx").exists()); }
@Test public void testSwitchInstance() throws JasDBException, IOException { DBSession session = sessionFactory.createSession(); session.addInstance(MY_INSTANCE); assertEquals("default", session.getInstanceId()); session.switchInstance(MY_INSTANCE); assertEquals(MY_INSTANCE, session.getInstanceId()); session.addAndSwitchInstance("anotherInstance"); assertEquals("anotherInstance", session.getInstanceId()); }
@Test public void testGetBagList() throws JasDBException, IOException { DBSession session = sessionFactory.createSession(); session.addAndSwitchInstance(MY_INSTANCE); session.createOrGetBag(BAG_1); session.createOrGetBag("bag2"); assertEquals(2, session.getBags().size()); assertEquals(0, session.getBags("default").size()); assertEquals(2, session.getBags(MY_INSTANCE).size()); }
@RequestMapping(value="/{instanceId}/createBag", method = RequestMethod.POST) public String createBag(Bag bag, @PathVariable String instanceId) throws JasDBException { DBSession session = sessionFactory.createSession(instanceId); session.createOrGetBag(bag.getName()); return "redirect:/data/"; }
@Test public void addSessionInstanceBound() throws JasDBException, IOException { DBSession session = sessionFactory.createSession(); assertEquals("default", session.getInstanceId()); session.createOrGetBag("testbag"); assertEquals(1, session.getBags().size()); session.addInstance(MY_INSTANCE); assertEquals("default", session.getInstanceId()); DBSession newSession = sessionFactory.createSession(MY_INSTANCE); newSession.createOrGetBag(BAG_1); newSession.createOrGetBag("bag2"); assertEquals(MY_INSTANCE, newSession.getInstanceId()); assertEquals(2, newSession.getBags().size()); assertEquals(1, session.getBags().size()); }
@Test public void testBagRemoveInstance() throws JasDBException, IOException { DBSession session = sessionFactory.createSession(); File newInstanceFolder = new File(storageLocation + "/.jasdb/myInstance"); session.addAndSwitchInstance(MY_INSTANCE); EntityBag bag = session.createOrGetBag("testbag1"); bag.ensureIndex(new SimpleIndexField("field1", new StringKeyType()), false); assertTrue(new File(newInstanceFolder, "testbag1.pjs").exists()); assertTrue(new File(newInstanceFolder, "testbag1_field1ID.idx").exists()); assertEquals(1, session.getBags().size()); session.removeBag("testbag1"); assertFalse(new File(newInstanceFolder, "testbag1.pjs").exists()); assertFalse(new File(newInstanceFolder, "testbag1_field1ID.idx").exists()); } }
@Test public void addInstance() throws JasDBException, IOException { DBSession session = sessionFactory.createSession(); session.addInstance(MY_INSTANCE); List<Instance> instanceList = session.getInstances(); assertEquals(2, instanceList.size()); session.createOrGetBag(MY_INSTANCE, "testbag"); File instanceLocation = new File(storageLocation + "/.jasdb/myInstance"); assertThat(instanceLocation.exists(), is(true)); assertThat(new File(instanceLocation, "testbag.pjs").exists(), is(true)); }
@Test public void testBagRemove() throws JasDBException { DBSession session = sessionFactory.createSession(); EntityBag bag = session.createOrGetBag("testbag1"); bag.ensureIndex(new SimpleIndexField("field1", new StringKeyType()), false); assertTrue(new File(jasdbHome, "testbag1.pjs").exists()); assertTrue(new File(jasdbHome, "testbag1_field1ID.idx").exists()); assertEquals(1, session.getBags().size()); session.removeBag("testbag1"); assertFalse(new File(jasdbHome, "testbag1.pjs").exists()); assertFalse(new File(jasdbHome, "testbag1_field1ID.idx").exists()); }
@Test public void testBagCreateOrGet() throws JasDBException { DBSession session = sessionFactory.createSession(); session.createOrGetBag("testbag1"); assertTrue(new File(jasdbHome, "testbag1.pjs").exists()); assertEquals(1, session.getBags().size()); }
@Test public void testCreateAndInsertEntities() throws JasDBException, IOException { DBSession session = sessionFactory.createSession(); session.addInstance(MY_INSTANCE); EntityBag bag = session.createOrGetBag(MY_INSTANCE, BAG_1); bag.addEntity(new SimpleEntity().addProperty("test", "value")); QueryResult result = bag.getEntities(); assertThat(result.size(), is(1l)); Entity entity = result.next(); assertThat(entity, notNullValue()); assertThat(entity.getProperty("test").getFirstValue().toString(), is("value")); }
private String buildIndex(DBSession session, Model model) throws JasDBException { model.addAttribute("instances", session.getInstances()); model.addAttribute("instanceId", session.getInstanceId()); model.addAttribute("instance", session.getInstance(session.getInstanceId())); //required pre-filled empty forms model.addAttribute("bag", new Bag()); model.addAttribute("entity", new WebEntity()); model.addAttribute("searchForm", new SearchForm()); model.addAttribute("instanceForm", new WebInstance()); return "data/index"; }
@Test public void testBagGetNonExisting() throws JasDBException { DBSession session = sessionFactory.createSession(); assertNull(session.getBag("testbag1")); assertNull(session.getBag("testbag2")); assertEquals(0, session.getBags().size()); assertFalse(new File(jasdbHome, "testbag1.pjs").exists()); assertFalse(new File(jasdbHome, "testbag1.pjsm").exists()); assertFalse(new File(jasdbHome, "testbag2.pjs").exists()); assertFalse(new File(jasdbHome, "testbag2.pjsm").exists()); }
@RequestMapping(value = "/{instanceId}/{bag}") public String findAll(@PathVariable String instanceId, @PathVariable String bag, Model model) throws JasDBException { DBSession session = sessionFactory.createSession(instanceId); EntityBag entityBag = session.getBag(bag); PageResult result = new PageResult(); model.addAttribute("page", result); if(entityBag != null) { QueryResult queryResult = entityBag.getEntities(DEFAULT_PAGE_SIZE); result.setEntities(loadEntities(queryResult)); } else { result.setMessage(String.format("Unable to load Bag: %s on instance: %s as it does not exist", bag, instanceId)); } return "data/query"; }
@Test public void testEntityManagerUpdate() throws JasDBException { DBSession session = sessionFactory.createSession(); EntityManager entityManager = session.getEntityManager(); String id = UUID.randomUUID().toString(); TestEntity entity = new TestEntity(id, "Renze", "de Vries", newArrayList("programming", "model building", "biking"), new ImmutableMap.Builder<String, String>() .put("city", "Amsterdam") .put("street", "Secret passageway 10") .put("zipcode", "0000TT").build()); assertThat(entityManager.persist(entity).getInternalId(), is(id)); EntityBag testBag = session.createOrGetBag("TEST_BAG"); assertThat(testBag.getSize(), is(1l)); Entity mappedEntity = testBag.getEntity(id); assertThat(mappedEntity.getValue("firstName"), is("Renze")); assertThat(mappedEntity.getValue("lastName"), is("de Vries")); entity.setFirstName("Updated"); entityManager.persist(entity); mappedEntity = testBag.getEntity(id); assertThat(mappedEntity.getValue("firstName"), is("Updated")); assertThat(mappedEntity.getValue("lastName"), is("de Vries")); }
@RequestMapping(value="/{instanceId}", method = RequestMethod.GET) public String instanceData(@PathVariable String instanceId, Model model) throws JasDBException { DBSession session = sessionFactory.createSession(instanceId); model.addAttribute("bags", session.getBags(instanceId)); return buildIndex(session, model); }
@RequestMapping(value = "/{instanceId}/delete", method = RequestMethod.GET) public String deleteInstance(@PathVariable String instanceId) throws JasDBException { DBSession session = sessionFactory.createSession(); session.deleteInstance(instanceId); return "redirect:/data/"; }
@RequestMapping(value = "/{instanceId}/{bag}/delete", method = RequestMethod.GET) public String deleteBag(@PathVariable String instanceId, @PathVariable String bag) throws JasDBException { DBSession session = sessionFactory.createSession(instanceId); session.removeBag(instanceId, bag); return "redirect:/data/"; }
@RequestMapping(value = "/", method = RequestMethod.POST) public String createInstance(@Valid WebInstance instance) throws JasDBException { DBSession session = sessionFactory.createSession(); session.addInstance(instance.getName()); return "redirect:/data/"; }