private static NodeState newNamespaceNode(String valid) { NodeBuilder ns = EMPTY_NODE.builder(); ns.child(REP_NSDATA).setProperty(REP_PREFIXES, Collections.singleton(valid), Type.STRINGS); return ns.getNodeState(); }
@Before public void setup() { NodeBuilder rootBuilder = EmptyNodeState.EMPTY_NODE.builder(); NodeBuilder test = rootBuilder.child("test"); test.setProperty("a", 1); test.setProperty("b", 2); test.setProperty("c", 3); test.child("x"); test.child("y"); test.child("z").child("zz"); root = rootBuilder.getNodeState(); }
@Test public void nestedBuilderFromState() throws Exception { NodeState rootState = store.getRoot(); NodeBuilder rootBuilder = rootState.builder(); rootBuilder.child("newNode"); NodeState baseState = rootBuilder.getNodeState(); NodeBuilder builderFromState = baseState.builder(); assertTrue(builderFromState.hasChildNode("newNode")); }
@Before public void setUp() throws Exception { NodeState root = EMPTY_NODE; NodeBuilder builder = root.builder(); builder.child("oak:index").child("solr") .setProperty(JCR_PRIMARYTYPE, "oak:QueryIndexDefinition") .setProperty("type", "solr") .child("server").setProperty("solrServerType", "embedded"); nodeState = builder.getNodeState(); }
private String createIndexDefn() throws CommitFailedException { NodeBuilder builder = EMPTY_NODE.builder(); builder.child("oak:index").child("fooIndex").setProperty("foo", "bar"); builder.child("oak:index").child("fooIndex").setProperty("foo3", "bar3"); builder.child("oak:index").child("fooIndex").child("b").setProperty("foo4", 4); builder.child("oak:index").child("barIndex").setProperty("foo", "bar"); builder.child("oak:index").child("barIndex").child("c").setProperty("foo5", 5); return createIndexDefn(builder.getNodeState(), "/oak:index/fooIndex", "/oak:index/barIndex"); }
@Test public void emptyProperty() throws Exception{ NodeBuilder builder = EMPTY_NODE.builder(); builder.child("a").setProperty("foo", Collections.emptyList(), Type.NAMES); assertDeserialization(builder); }
@Test public void testUnmodifiedEqualsBase() { NodeBuilder root = base.builder(); NodeBuilder x = root.child("x"); assertEquals(x.getBaseState(), x.getNodeState()); }
@Test public void simple() throws Exception{ NodeBuilder builder = EMPTY_NODE.builder(); builder.child("a").child("b"); builder.child("a").setProperty("foo", "bar"); NodeState state = builder.getNodeState(); assertTrue(EqualsDiff.equals(state, NodeStateCloner.cloneVisibleState(state))); }
@Test public void nullIndex_NonFreshIndex() throws Exception{ NodeBuilder builder = createNRTIndex().builder(); NodeBuilder rootBuilder = root.builder(); rootBuilder.child(IndexNodeManager.ASYNC).setProperty("async", "async"); assertNull(LuceneIndexNodeManager.open("/foo", rootBuilder.getNodeState(), builder.getNodeState(), readerFactory, nrtFactory)); }
@Test (expected = IllegalStateException.class) public void updateNonExistingParent() throws Exception{ NodeBuilder builder = store.getRoot().builder(); builder.child("oak:index").child("fooIndex").setProperty("foo", "bar"); store.merge(builder, EmptyHook.INSTANCE, CommitInfo.EMPTY); NodeBuilder builder2 = EMPTY_NODE.builder(); builder2.child("a").child("oak:index").child("barIndex").setProperty("foo", "bar"); String json = createIndexDefn(builder2.getNodeState(), "/oak:index/fooIndex", "/a/oak:index/barIndex"); applyJson(json); }
@Test public void changeNode() { NodeBuilder builder = before.builder(); builder.getChildNode("m").getChildNode("n").setProperty("p", 42); nodeObserver.contentChanged(builder.getNodeState(), CommitInfo.EMPTY); assertTrue(nodeObserver.added.isEmpty()); assertTrue(nodeObserver.deleted.isEmpty()); assertEquals(ImmutableMap.of("/m/n", ImmutableSet.of("p")), nodeObserver.changed); assertEquals(ImmutableMap.of("/m/n", ImmutableMap.of("extra", "42")), nodeObserver.properties); }
@Test public void ignoreChange() { NodeBuilder builder = before.builder(); builder.getChildNode("a").getChildNode("b").setProperty("p", 42); nodeObserver.contentChanged(builder.getNodeState(), CommitInfo.EMPTY); assertTrue(nodeObserver.added.isEmpty()); assertTrue(nodeObserver.deleted.isEmpty()); assertTrue(nodeObserver.changed.isEmpty()); assertTrue(nodeObserver.properties.isEmpty()); }
@Test public void nestedBuilderWithNewPropertyFromState() throws Exception { NodeState rootState = store.getRoot(); NodeBuilder rootBuilder = rootState.builder(); rootBuilder.setProperty("newProperty", true, Type.BOOLEAN); NodeState baseState = rootBuilder.getNodeState(); assertTrue(baseState.getBoolean("newProperty")); NodeBuilder builderFromState = baseState.builder(); assertTrue(builderFromState.getBoolean("newProperty")); assertTrue(builderFromState.getNodeState().getBoolean("newProperty")); //assertTrue(builderFromState.getBaseState().getBoolean("newProperty")); // FIXME }
@Test public void callbackInvoked() throws Exception{ AtomicBoolean callbackInvoked = new AtomicBoolean(); store = new UniqueEntryStoreStrategy(INDEX_CONTENT_NODE_NAME, (nb) -> callbackInvoked.set(true)); indexName = "foo"; NodeState root = EMPTY_NODE; indexMeta = root.builder(); Supplier<NodeBuilder> index = memoize(() -> indexMeta.child(INDEX_CONTENT_NODE_NAME)); store.update(index, "/some/node1", null, null, EMPTY, newHashSet("key1")); assertTrue(callbackInvoked.get()); } }
@Test public void versionedMixins() throws Exception{ builder.child("mix:foo").setProperty(createProperty(PROP_PATTERN, asList("jcr:content"), STRINGS)); BundledTypesRegistry registry = BundledTypesRegistry.from(builder.getNodeState()); NodeBuilder builder = EMPTY_NODE.builder(); builder.setProperty(JCR_PRIMARYTYPE, JcrConstants.NT_FROZENNODE, Type.NAME); builder.setProperty(JCR_FROZENMIXINTYPES, Collections.singleton("mix:foo"), Type.NAMES); assertNotNull(registry.getBundlor(builder.getNodeState())); }
@Test public void addNode() { NodeBuilder builder = before.builder(); builder.getChildNode("m").getChildNode("n").setChildNode("new").setProperty("p", "3"); nodeObserver.contentChanged(builder.getNodeState(), CommitInfo.EMPTY); assertEquals(ImmutableMap.of("/m/n/new", ImmutableSet.of("p")), nodeObserver.added); assertTrue(nodeObserver.deleted.isEmpty()); assertTrue(nodeObserver.changed.isEmpty()); assertTrue(nodeObserver.properties.isEmpty()); }
@Test public void valuePatternExclude() throws Exception { NodeState root = EMPTY_NODE; // Add index definitions NodeBuilder builder = root.builder(); NodeBuilder index = builder.child(INDEX_DEFINITIONS_NAME); NodeBuilder indexDef = createIndexDefinition( index, "fooIndex", true, false, ImmutableSet.of("foo"), null); indexDef.setProperty(IndexConstants.VALUE_EXCLUDED_PREFIXES, "test"); valuePatternExclude0(builder); }
@Test public void nodeStateAsMap() throws Exception{ NodeBuilder nb = EMPTY_NODE.builder(); nb.setProperty("a", "a"); nb.setProperty("b", 1); nb.setProperty(JcrConstants.JCR_PRIMARYTYPE, "nt:base"); nb.setProperty(":hiddenProp", "hiddenValue"); Map<String, String> result = factory.convertNodeState(nb.getNodeState()); assertEquals("a", result.get("a")); assertEquals("1", result.get("b")); assertNull(result.get(JcrConstants.JCR_PRIMARYTYPE)); assertNull(result.get(":hiddenProp")); }
private NodeState doAsyncIndex(NodeState current, String childName, String fooValue) throws CommitFailedException { //Have some stuff to be indexed NodeBuilder builder = current.builder(); builder.child(childName).setProperty("foo", fooValue); NodeState after = builder.getNodeState(); return asyncHook.processCommit(current, after, newCommitInfo()); }
private void switchBucket(String propertyName) { NodeBuilder propertyIndex = builder.child(PROPERTY_INDEX); NodeBuilder idx = propertyIndex.child(HybridPropertyIndexUtil.getNodeName(propertyName)); String head = idx.getString(HybridPropertyIndexUtil.PROP_HEAD_BUCKET); assertNotNull(head); int id = Integer.parseInt(head); idx.setProperty(PROP_PREVIOUS_BUCKET, head); idx.setProperty(PROP_HEAD_BUCKET, String.valueOf(id + 1)); builder = builder.getNodeState().builder(); }