@Test public void testFindByParent() throws Exception { ODocument parent1 = new ODocument("Node") .field("title", "ref1") .field("titleasc", "ref1") .field("description", "desc") .field("descriptionMarkup", "default") .field("created", 1L) .field("modified", 2L); parent1.save(); ODocument parent2 = new ODocument("Node") .field("title", "ref2") .field("titleasc", "ref2") .field("description", "desc") .field("descriptionMarkup", "default") .field("created", 1L) .field("modified", 2L); parent2.save(); String id1 = parent1.getIdentity().toString(); String id2 = parent2.getIdentity().toString(); IPeriod period1 = new Period(); period1.setFromEntry("1.1585"); period1.setToEntry("2.1585"); period1.setCreated(1L); period1.setModified(2L); period1.setParentId(id1); repository.save(period1); IPeriod period2 = new Period(); period2.setFromEntry("1929"); period2.setToEntry("1930"); period2.setCreated(1L); period2.setModified(2L); period2.setParentId(id1); repository.save(period2); IPeriod period3 = new Period(); period3.setFromEntry("1.1.1700"); period3.setToEntry("5.6.1702"); period3.setCreated(1L); period3.setModified(2L); period3.setParentId(id1); repository.save(period3); List<IPeriod> periods = repository.findByParent(id1); assertTrue(periods.size() == 3); periods = repository.findByParent(id2); assertTrue(periods.size() == 0); }
@Test public void testConvertToDocument() throws Exception { ODocument parent = new ODocument("Node") .field("title", "ref1") .field("titleasc", "ref1") .field("description", "desc") .field("descriptionMarkup", "default") .field("created", 1L) .field("modified", 2L); parent.save(); IPeriod period = new Period(); period.setFromEntry("1.1585"); period.setToEntry("2.1585"); period.setComment("comment"); period.addFuzzyFromFlag('c'); period.addFuzzyToFlag('?'); period.setCreated(1L); period.setModified(2L); period.setParentId(parent.getIdentity().toString()); period.setParentModel("Node"); // first without id ODocument document = repository.convertToDocument(period); assertEquals("1.1585", document.field("fromEntry")); assertEquals("2.1585", document.field("toEntry")); assertEquals("G", document.field("fromEntryCalendar")); assertEquals("G", document.field("toEntryCalendar")); assertEquals("c", document.field("fromFuzzyFlags")); assertEquals("?", document.field("toFuzzyFlags")); assertEquals(new Long(2299970L), document.field("fromJD", Long.class)); assertEquals(new Long(2300028L), document.field("toJD", Long.class)); assertEquals("comment", document.field("comment")); assertEquals(new Long(1L), document.field("created", Long.class)); assertEquals(new Long(2L), document.field("modified", Long.class)); assertEquals(parent.getIdentity().toString(), document.field("parent", String.class)); // save document to get id document.save(); String id = document.getIdentity().toString(); // set id and test conversion period.setId(id); ODocument newDocument = repository.convertToDocument(period); assertEquals(document.getIdentity().toString(), newDocument.getIdentity().toString()); assertEquals(parent.getIdentity(), newDocument.field("parent", ORecordId.class)); }
@Test public void testConvertToEntity() throws Exception { ODocument parent = new ODocument("Node") .field("title", "ref1") .field("titleasc", "ref1") .field("description", "desc") .field("descriptionMarkup", "default") .field("created", 1L) .field("modified", 2L); parent.save(); ODocument document = new ODocument("Period") .field("fromEntryCalendar", "G") .field("toEntryCalendar", "G") .field("fromEntry", "1.1585") .field("toEntry", "2.1585") .field("from", 2299970L) .field("to", 2300028L) .field("type", "period") .field("comment", "comment") .field("fromFuzzyFlags", "x?") .field("toFuzzyFlags", "c?") .field("parent", parent) .field("created", 1L) .field("modified", 2L); // persist to database to create id document.save(); IPeriod period = repository.convertToEntity(document); assertEquals("1.1585", period.getFromEntry()); assertEquals("2.1585", period.getToEntry()); assertEquals("G", period.getFromEntryCalendar()); assertEquals("G", period.getToEntryCalendar()); assertEquals("period", period.getType()); assertEquals(new Long(2299970L), period.getFromJD()); assertEquals(new Long(2300028L), period.getToJD()); assertEquals("comment", period.getComment()); assertArrayEquals(new char[] {'?'}, period.getFuzzyFromFlags()); assertArrayEquals(new char[] {'c', '?'}, period.getFuzzyToFlags()); assertEquals(new Long(1L), period.getCreated()); assertEquals(new Long(2L), period.getModified()); assertEquals(parent.getIdentity().toString(), period.getParentId()); assertEquals("Node", period.getParentModel()); assertEquals(document.getIdentity().toString(), period.getId()); }
@Test public void testGetModelClassName() throws Exception { assertEquals("Period", repository.getModelClassName()); }
@Test public void testGetDefaultOrder() throws Exception { assertEquals(" ORDER BY fromJD ASC, toJD ASC", repository.getDefaultOrder(true)); assertEquals(" fromJD ASC, toJD ASC", repository.getDefaultOrder(false)); }
@Test public void testFindWithin1() throws Exception { ODocument parent1 = new ODocument("Node") .field("title", "ref1") .field("titleasc", "ref1") .field("description", "desc") .field("descriptionMarkup", "default") .field("created", 1L) .field("modified", 2L); parent1.save(); ODocument parent2 = new ODocument("Node") .field("title", "ref2") .field("titleasc", "ref2") .field("description", "desc") .field("descriptionMarkup", "default") .field("created", 1L) .field("modified", 2L); parent2.save(); String id1 = parent1.getIdentity().toString(); String id2 = parent2.getIdentity().toString(); IPeriod period1 = new Period(); period1.setFromEntry("1.1585"); period1.setToEntry("2.1585"); period1.setCreated(1L); period1.setModified(2L); period1.setParentId(id1); repository.save(period1); IPeriod period2 = new Period(); period2.setFromEntry("1929"); period2.setToEntry("1930"); period2.setCreated(1L); period2.setModified(2L); period2.setParentId(id1); repository.save(period2); IPeriod period3 = new Period(); period3.setFromEntry("1.1.1700"); period3.setToEntry("5.6.1702"); period3.setCreated(1L); period3.setModified(2L); period3.setParentId(id2); repository.save(period3); IPeriod period4 = new Period(); period4.setFromEntry(null); period4.setToEntry("1596"); period4.setCreated(1L); period4.setModified(2L); period4.setParentId(id1); repository.save(period4); IPeriod period5 = new Period(); period5.setFromEntry("5.1.901"); period5.setToEntry(null); period5.setCreated(1L); period5.setModified(2L); period5.setParentId(id1); repository.save(period5); IPeriod period6 = new Period(); period6.setFromEntry("19.6.1601"); period6.setToEntry("19.6.1601"); period6.setCreated(1L); period6.setModified(2L); period6.setParentId(id2); repository.save(period6); // 1-1-1585 to 18-6-1601 DateTime start = new DateTime().withYear(1585).withMonthOfYear(1).withDayOfMonth(1).withTime(0, 0, 0, 0); DateTime end = new DateTime().withYear(1601).withMonthOfYear(6).withDayOfMonth(18).withTime(0, 0, 0, 0); List<IPeriod> periods; periods = repository.findWithin(start, end); assertEquals(3, periods.size()); assertEquals(null, periods.get(0).getFromEntry()); assertEquals("1596", periods.get(0).getToEntry()); assertEquals("5.1.901", periods.get(1).getFromEntry()); assertEquals(null, periods.get(1).getToEntry()); assertEquals("1.1585", periods.get(2).getFromEntry()); assertEquals("2.1585", periods.get(2).getToEntry()); }
@Test public void testFindWithin() throws Exception { ODocument parent1 = new ODocument("Node") .field("title", "ref1") .field("titleasc", "ref1") .field("titleasc", "ref1") .field("description", "desc") .field("descriptionMarkup", "default") .field("created", 1L) .field("modified", 2L); parent1.save(); ODocument parent2 = new ODocument("Node") .field("title", "ref2") .field("titleasc", "ref2") .field("titleasc", "ref2") .field("description", "desc") .field("descriptionMarkup", "default") .field("created", 1L) .field("modified", 2L); parent2.save(); String id1 = parent1.getIdentity().toString(); String id2 = parent2.getIdentity().toString(); IPeriod period1 = new Period(); period1.setFromEntry("1.1585"); period1.setToEntry("2.1585"); period1.setCreated(1L); period1.setModified(2L); period1.setParentId(id1); repository.save(period1); IPeriod period2 = new Period(); period2.setFromEntry("1929"); period2.setToEntry("1930"); period2.setCreated(1L); period2.setModified(2L); period2.setParentId(id1); repository.save(period2); IPeriod period3 = new Period(); period3.setFromEntry("1.1.1700"); period3.setToEntry("5.6.1702"); period3.setCreated(1L); period3.setModified(2L); period3.setParentId(id2); repository.save(period3); IPeriod period4 = new Period(); period4.setFromEntry(null); period4.setToEntry("1596"); period4.setCreated(1L); period4.setModified(2L); period4.setParentId(id1); repository.save(period4); IPeriod period5 = new Period(); period5.setFromEntry("5.1.901"); period5.setToEntry(null); period5.setCreated(1L); period5.setModified(2L); period5.setParentId(id1); repository.save(period5); IPeriod period6 = new Period(); period6.setFromEntry("19.6.1601"); period6.setToEntry("19.6.1601"); period6.setCreated(1L); period6.setModified(2L); period6.setParentId(id2); repository.save(period6); List<IPeriod> periods; // first, the simple cases: // all entries up to 18-6-1601 periods = repository.findWithin(null, 2305982L); assertEquals(3, periods.size()); assertEquals(null, periods.get(0).getFromEntry()); assertEquals("1596", periods.get(0).getToEntry()); assertEquals("5.1.901", periods.get(1).getFromEntry()); assertEquals(null, periods.get(1).getToEntry()); assertEquals("1.1585", periods.get(2).getFromEntry()); assertEquals("2.1585", periods.get(2).getToEntry()); // all entries on and after 1-1-1585 periods = repository.findWithin(2299970L, null); assertEquals(5, periods.size()); assertEquals(null, periods.get(0).getFromEntry()); assertEquals("1596", periods.get(0).getToEntry()); assertEquals("1.1585", periods.get(1).getFromEntry()); assertEquals("2.1585", periods.get(1).getToEntry()); assertEquals("19.6.1601", periods.get(2).getFromEntry()); assertEquals("19.6.1601", periods.get(2).getToEntry()); assertEquals("1.1.1700", periods.get(3).getFromEntry()); assertEquals("5.6.1702", periods.get(3).getToEntry()); assertEquals("1929", periods.get(4).getFromEntry()); assertEquals("1930", periods.get(4).getToEntry()); // 1-1-1585 to 18-6-1601 periods = repository.findWithin(2299970L, 2305982L); assertEquals(3, periods.size()); assertEquals(null, periods.get(0).getFromEntry()); assertEquals("1596", periods.get(0).getToEntry()); assertEquals("5.1.901", periods.get(1).getFromEntry()); assertEquals(null, periods.get(1).getToEntry()); assertEquals("1.1585", periods.get(2).getFromEntry()); assertEquals("2.1585", periods.get(2).getToEntry()); }