graph.flush(); v = graph.getVertex("v1", AUTHORIZATIONS_A); assertEquals("value1a", v.getPropertyValues("prop1").iterator().next()); assertEquals("value2a", v.getPropertyValues("prop2").iterator().next()); assertEquals("value3a", v.getPropertyValues("prop3").iterator().next()); Assert.assertEquals(3, count(v.getProperties())); graph.flush(); v = graph.getVertex("v1", AUTHORIZATIONS_A); Assert.assertEquals(1, count(v.getPropertyValues("prop1"))); assertEquals("value1b", v.getPropertyValues("prop1").iterator().next()); Assert.assertEquals(1, count(v.getPropertyValues("prop2"))); assertEquals("value2b", v.getPropertyValues("prop2").iterator().next()); Assert.assertEquals(1, count(v.getPropertyValues("prop3"))); assertEquals("value3a", v.getPropertyValues("prop3").iterator().next()); Assert.assertEquals(3, count(v.getProperties())); graph.flush(); v = graph.getVertex("v1", AUTHORIZATIONS_A); org.vertexium.test.util.IterableUtils.assertContains("value1b", v.getPropertyValues("prop1")); org.vertexium.test.util.IterableUtils.assertContains("value1a-new", v.getPropertyValues("prop1")); Assert.assertEquals(4, count(v.getProperties()));
graph.flush(); v = graph.getVertex("v1", AUTHORIZATIONS_A); assertEquals("value1a", v.getPropertyValues("prop1").iterator().next()); assertEquals("value2a", v.getPropertyValues("prop2").iterator().next()); assertEquals("value3a", v.getPropertyValues("prop3").iterator().next()); Assert.assertEquals(3, count(v.getProperties())); graph.flush(); v = graph.getVertex("v1", AUTHORIZATIONS_A); Assert.assertEquals(1, count(v.getPropertyValues("prop1"))); assertEquals("value1b", v.getPropertyValues("prop1").iterator().next()); Assert.assertEquals(1, count(v.getPropertyValues("prop2"))); assertEquals("value2b", v.getPropertyValues("prop2").iterator().next()); Assert.assertEquals(1, count(v.getPropertyValues("prop3"))); assertEquals("value3a", v.getPropertyValues("prop3").iterator().next()); Assert.assertEquals(3, count(v.getProperties())); graph.flush(); v = graph.getVertex("v1", AUTHORIZATIONS_A); org.vertexium.test.util.IterableUtils.assertContains("value1b", v.getPropertyValues("prop1")); org.vertexium.test.util.IterableUtils.assertContains("value1a-new", v.getPropertyValues("prop1")); Assert.assertEquals(4, count(v.getProperties()));
graph.flush(); Iterable<Object> propSmallValues = v1.getPropertyValues("propSmall"); Assert.assertEquals(1, count(propSmallValues)); Object propSmallValue = propSmallValues.iterator().next(); assertEquals("value1", IOUtils.toString(value.getInputStream())); Iterable<Object> propLargeValues = v1.getPropertyValues(largePropertyName); Assert.assertEquals(1, count(propLargeValues)); Object propLargeValue = propLargeValues.iterator().next(); propSmallValues = v1.getPropertyValues("propSmall"); Assert.assertEquals(1, count(propSmallValues)); propSmallValue = propSmallValues.iterator().next(); assertEquals("value1", IOUtils.toString(value.getInputStream())); propLargeValues = v1.getPropertyValues(largePropertyName); Assert.assertEquals(1, count(propLargeValues)); propLargeValue = propLargeValues.iterator().next();
graph.flush(); Iterable<Object> propSmallValues = v1.getPropertyValues("propSmall"); Assert.assertEquals(1, count(propSmallValues)); Object propSmallValue = propSmallValues.iterator().next(); assertEquals("value1", IOUtils.toString(value.getInputStream())); Iterable<Object> propLargeValues = v1.getPropertyValues(largePropertyName); Assert.assertEquals(1, count(propLargeValues)); Object propLargeValue = propLargeValues.iterator().next(); propSmallValues = v1.getPropertyValues("propSmall"); Assert.assertEquals(1, count(propSmallValues)); propSmallValue = propSmallValues.iterator().next(); assertEquals("value1", IOUtils.toString(value.getInputStream())); propLargeValues = v1.getPropertyValues(largePropertyName); Assert.assertEquals(1, count(propLargeValues)); propLargeValue = propLargeValues.iterator().next();
@Test public void testSoftDeletePropertyWithVisibility() { Vertex v1 = graph.prepareVertex("v1", VISIBILITY_A) .addPropertyValue("key1", "name1", "value1", VISIBILITY_A) .addPropertyValue("key1", "name1", "value2", VISIBILITY_B) .save(AUTHORIZATIONS_A_AND_B); graph.flush(); assertEquals(2, count(graph.getVertex("v1", AUTHORIZATIONS_A_AND_B).getProperties())); org.vertexium.test.util.IterableUtils.assertContains("value1", v1.getPropertyValues("name1")); org.vertexium.test.util.IterableUtils.assertContains("value2", v1.getPropertyValues("name1")); graph.getVertex("v1", AUTHORIZATIONS_A_AND_B).softDeleteProperty("key1", "name1", VISIBILITY_A, AUTHORIZATIONS_A_AND_B); graph.flush(); assertEquals(1, count(graph.getVertex("v1", AUTHORIZATIONS_A_AND_B).getProperties())); assertEquals(1, count(graph.getVertex("v1", AUTHORIZATIONS_A_AND_B).getPropertyValues("key1", "name1"))); org.vertexium.test.util.IterableUtils.assertContains("value2", graph.getVertex("v1", AUTHORIZATIONS_A_AND_B).getPropertyValues("name1")); }
@Test public void testSoftDeletePropertyWithVisibility() { Vertex v1 = graph.prepareVertex("v1", VISIBILITY_A) .addPropertyValue("key1", "name1", "value1", VISIBILITY_A) .addPropertyValue("key1", "name1", "value2", VISIBILITY_B) .save(AUTHORIZATIONS_A_AND_B); graph.flush(); assertEquals(2, count(graph.getVertex("v1", AUTHORIZATIONS_A_AND_B).getProperties())); org.vertexium.test.util.IterableUtils.assertContains("value1", v1.getPropertyValues("name1")); org.vertexium.test.util.IterableUtils.assertContains("value2", v1.getPropertyValues("name1")); graph.getVertex("v1", AUTHORIZATIONS_A_AND_B).softDeleteProperty("key1", "name1", VISIBILITY_A, AUTHORIZATIONS_A_AND_B); graph.flush(); assertEquals(1, count(graph.getVertex("v1", AUTHORIZATIONS_A_AND_B).getProperties())); assertEquals(1, count(graph.getVertex("v1", AUTHORIZATIONS_A_AND_B).getPropertyValues("key1", "name1"))); org.vertexium.test.util.IterableUtils.assertContains("value2", graph.getVertex("v1", AUTHORIZATIONS_A_AND_B).getPropertyValues("name1")); }
@Test public void testSoftDeletePropertyThroughMutationWithVisibility() { Vertex v1 = graph.prepareVertex("v1", VISIBILITY_A) .addPropertyValue("key1", "name1", "value1", VISIBILITY_A) .addPropertyValue("key1", "name1", "value2", VISIBILITY_B) .save(AUTHORIZATIONS_A_AND_B); graph.flush(); assertEquals(2, count(graph.getVertex("v1", AUTHORIZATIONS_A_AND_B).getProperties())); org.vertexium.test.util.IterableUtils.assertContains("value1", v1.getPropertyValues("name1")); org.vertexium.test.util.IterableUtils.assertContains("value2", v1.getPropertyValues("name1")); v1 = graph.getVertex("v1", AUTHORIZATIONS_A_AND_B) .prepareMutation() .softDeleteProperty("key1", "name1", VISIBILITY_A) .save(AUTHORIZATIONS_A_AND_B); graph.flush(); assertEquals(1, count(v1.getProperties())); assertEquals(1, count(v1.getPropertyValues("key1", "name1"))); org.vertexium.test.util.IterableUtils.assertContains("value2", v1.getPropertyValues("name1")); }
@Test public void testSoftDeletePropertyThroughMutationWithVisibility() { Vertex v1 = graph.prepareVertex("v1", VISIBILITY_A) .addPropertyValue("key1", "name1", "value1", VISIBILITY_A) .addPropertyValue("key1", "name1", "value2", VISIBILITY_B) .save(AUTHORIZATIONS_A_AND_B); graph.flush(); assertEquals(2, count(graph.getVertex("v1", AUTHORIZATIONS_A_AND_B).getProperties())); org.vertexium.test.util.IterableUtils.assertContains("value1", v1.getPropertyValues("name1")); org.vertexium.test.util.IterableUtils.assertContains("value2", v1.getPropertyValues("name1")); v1 = graph.getVertex("v1", AUTHORIZATIONS_A_AND_B) .prepareMutation() .softDeleteProperty("key1", "name1", VISIBILITY_A) .save(AUTHORIZATIONS_A_AND_B); graph.flush(); assertEquals(1, count(v1.getProperties())); assertEquals(1, count(v1.getPropertyValues("key1", "name1"))); org.vertexium.test.util.IterableUtils.assertContains("value2", v1.getPropertyValues("name1")); }
.save(AUTHORIZATIONS_A_AND_B); Assert.assertEquals(1, count(vertexAdded.getProperties("prop1"))); assertEquals("value1", vertexAdded.getPropertyValues("prop1").iterator().next()); Assert.assertEquals(1, count(vertexAdded.getProperties("prop2"))); assertEquals("value2", vertexAdded.getPropertyValues("prop2").iterator().next()); graph.flush(); assertEquals("value1", v.getPropertyValues("prop1").iterator().next()); Assert.assertEquals(1, count(v.getProperties("prop2"))); assertEquals("value2", v.getPropertyValues("prop2").iterator().next()); v = graph.getVertex("v1", AUTHORIZATIONS_A_AND_B); Assert.assertEquals(1, count(v.getProperties("prop1Mutation"))); assertEquals("value1Mutation", v.getPropertyValues("prop1Mutation").iterator().next()); assertEvents( new AddPropertyEvent(graph, vertexAdded, vertexAdded.getProperty("prop1Mutation"))
.save(AUTHORIZATIONS_A_AND_B); Assert.assertEquals(1, count(vertexAdded.getProperties("prop1"))); assertEquals("value1", vertexAdded.getPropertyValues("prop1").iterator().next()); Assert.assertEquals(1, count(vertexAdded.getProperties("prop2"))); assertEquals("value2", vertexAdded.getPropertyValues("prop2").iterator().next()); graph.flush(); assertEquals("value1", v.getPropertyValues("prop1").iterator().next()); Assert.assertEquals(1, count(v.getProperties("prop2"))); assertEquals("value2", v.getPropertyValues("prop2").iterator().next()); v = graph.getVertex("v1", AUTHORIZATIONS_A_AND_B); Assert.assertEquals(1, count(v.getProperties("prop1Mutation"))); assertEquals("value1Mutation", v.getPropertyValues("prop1Mutation").iterator().next()); assertEvents( new AddPropertyEvent(graph, vertexAdded, vertexAdded.getProperty("prop1Mutation"))
graph.flush(); assertEquals(1, count(v1.getProperties())); org.vertexium.test.util.IterableUtils.assertContains("Joe", v1.getPropertyValues("firstName"));
graph.flush(); assertEquals(1, count(v1.getProperties())); org.vertexium.test.util.IterableUtils.assertContains("Joe", v1.getPropertyValues("firstName"));
graph.flush(); assertEquals(1, count(v1.getProperties())); org.vertexium.test.util.IterableUtils.assertContains("Joe", v1.getPropertyValues("firstName")); graph.flush(); assertEquals(1, count(v2.getProperties())); org.vertexium.test.util.IterableUtils.assertContains("Joe", v2.getPropertyValues("firstName"));
graph.flush(); assertEquals(1, count(v1.getProperties())); org.vertexium.test.util.IterableUtils.assertContains("Joe", v1.getPropertyValues("firstName")); graph.flush(); assertEquals(1, count(v2.getProperties())); org.vertexium.test.util.IterableUtils.assertContains("Joe", v2.getPropertyValues("firstName"));
@Test public void testMarkPropertyVisible() { Vertex v1 = graph.prepareVertex("v1", VISIBILITY_A) .addPropertyValue("key1", "firstName", "Joe", VISIBILITY_A) .save(AUTHORIZATIONS_A_AND_B); graph.flush(); assertEquals(1, count(v1.getProperties())); org.vertexium.test.util.IterableUtils.assertContains("Joe", v1.getPropertyValues("firstName")); long t = IncreasingTime.currentTimeMillis(); v1 = graph.getVertex("v1", AUTHORIZATIONS_A_AND_B); v1.markPropertyHidden("key1", "firstName", VISIBILITY_A, t, VISIBILITY_B, AUTHORIZATIONS_A_AND_B); t += 10; List<Property> properties = IterableUtils.toList(graph.getVertex("v1", FetchHints.ALL_INCLUDING_HIDDEN, AUTHORIZATIONS_A_AND_B).getProperties()); assertEquals(1, count(properties)); long beforeMarkPropertyVisibleTimestamp = t; t += 10; v1.markPropertyVisible("key1", "firstName", VISIBILITY_A, t, VISIBILITY_B, AUTHORIZATIONS_A_AND_B); t += 10; properties = IterableUtils.toList(graph.getVertex("v1", AUTHORIZATIONS_A_AND_B).getProperties()); assertEquals(1, count(properties)); graph.flush(); v1 = graph.getVertex("v1", graph.getDefaultFetchHints(), beforeMarkPropertyVisibleTimestamp, AUTHORIZATIONS_A_AND_B); assertNotNull("could not find v1 before timestamp " + beforeMarkPropertyVisibleTimestamp + " current time " + t, v1); properties = IterableUtils.toList(v1.getProperties()); assertEquals(0, count(properties)); }
@Test public void testMarkPropertyVisible() { Vertex v1 = graph.prepareVertex("v1", VISIBILITY_A) .addPropertyValue("key1", "firstName", "Joe", VISIBILITY_A) .save(AUTHORIZATIONS_A_AND_B); graph.flush(); assertEquals(1, count(v1.getProperties())); org.vertexium.test.util.IterableUtils.assertContains("Joe", v1.getPropertyValues("firstName")); long t = IncreasingTime.currentTimeMillis(); v1 = graph.getVertex("v1", AUTHORIZATIONS_A_AND_B); v1.markPropertyHidden("key1", "firstName", VISIBILITY_A, t, VISIBILITY_B, AUTHORIZATIONS_A_AND_B); t += 10; List<Property> properties = IterableUtils.toList(graph.getVertex("v1", FetchHints.ALL_INCLUDING_HIDDEN, AUTHORIZATIONS_A_AND_B).getProperties()); assertEquals(1, count(properties)); long beforeMarkPropertyVisibleTimestamp = t; t += 10; v1.markPropertyVisible("key1", "firstName", VISIBILITY_A, t, VISIBILITY_B, AUTHORIZATIONS_A_AND_B); t += 10; properties = IterableUtils.toList(graph.getVertex("v1", AUTHORIZATIONS_A_AND_B).getProperties()); assertEquals(1, count(properties)); graph.flush(); v1 = graph.getVertex("v1", graph.getDefaultFetchHints(), beforeMarkPropertyVisibleTimestamp, AUTHORIZATIONS_A_AND_B); assertNotNull("could not find v1 before timestamp " + beforeMarkPropertyVisibleTimestamp + " current time " + t, v1); properties = IterableUtils.toList(v1.getProperties()); assertEquals(0, count(properties)); }