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(); }
@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 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 public void equals1() throws Exception{ setMetaProps(builder); builder.setProperty("foo", "bar"); NodeBuilder b2 = EMPTY_NODE.builder(); b2.setProperty("foo", "bar"); assertTrue(EqualsDiff.equals(DelegatingDocumentNodeState.wrap(builder.getNodeState(), NodeStateDiffer.DEFAULT_DIFFER), b2.getNodeState())); assertTrue(EqualsDiff.equals(b2.getNodeState(), DelegatingDocumentNodeState.wrap(builder.getNodeState(), NodeStateDiffer.DEFAULT_DIFFER))); }
@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 testPropertyAdded() { NodeState before = builder.getNodeState(); builder = before.builder(); builder.setProperty("test", "test"); NodeState after = builder.getNodeState(); expect(diff.propertyAdded(after.getProperty("test"))).andReturn(true); replay(diff); after.compareAgainstBaseState(before, diff); verify(diff); }
@Test public void versioned() throws Exception{ builder.child("nt:file").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_FROZENPRIMARYTYPE, "nt:file", Type.NAME); assertNotNull(registry.getBundlor(builder.getNodeState())); }
@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 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")); }
@Test public void customAnalyzer() throws Exception{ NodeBuilder defnb = newLuceneIndexDefinition(builder.child(INDEX_DEFINITIONS_NAME), "lucene", of(TYPENAME_STRING)); //Set this to -1 to avoid wrapping by LimitAnalyzer defnb.setProperty(FulltextIndexConstants.MAX_FIELD_LENGTH, -1); defnb.child(ANALYZERS).child(ANL_DEFAULT) .child(LuceneIndexConstants.ANL_TOKENIZER) .setProperty(LuceneIndexConstants.ANL_NAME, "whitespace"); LuceneIndexDefinition defn = new LuceneIndexDefinition(root, defnb.getNodeState(), "/foo"); assertEquals(TokenizerChain.class.getName(), defn.getAnalyzer().getClass().getName()); }
@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 asyncName() throws Exception { assertNull(IndexUtils.getAsyncLaneName(EMPTY_NODE, "/fooIndex")); NodeBuilder builder = EMPTY_NODE.builder(); builder.setProperty("async", newArrayList("async2", "sync"), Type.STRINGS); assertEquals("async2", IndexUtils.getAsyncLaneName(builder.getNodeState(), "/fooIndex")); builder.setProperty("async", newArrayList("async3"), Type.STRINGS); assertEquals("async3", IndexUtils.getAsyncLaneName(builder.getNodeState(), "/fooIndex")); }
@Test public void testReindexCount() throws Exception{ builder.child("testRoot").setProperty("foo", "abc"); NodeState before = builder.getNodeState(); createIndexDefinition(builder.child(INDEX_DEFINITIONS_NAME), "rootIndex", false, false, ImmutableSet.of("foo"), null); NodeState after = builder.getNodeState(); NodeState indexed = HOOK.processCommit(before, after, CommitInfo.EMPTY); long t1 = getReindexCount(indexed); NodeBuilder b2 = indexed.builder(); b2.child(INDEX_DEFINITIONS_NAME).child("rootIndex").setProperty(IndexConstants.REINDEX_PROPERTY_NAME, true); indexed = HOOK.processCommit(indexed, b2.getNodeState(), CommitInfo.EMPTY); long t2 = getReindexCount(indexed); assertTrue(t2 > t1); }
@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 (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 testSuggestEnabledOnRegexProp() throws Exception { NodeBuilder rules = builder.child(INDEX_RULES); rules.child(TestUtil.NT_TEST); TestUtil.child(rules, "oak:TestNode/properties/prop2") .setProperty(PROP_NAME, ".*") .setProperty(FulltextIndexConstants.PROP_IS_REGEX, true) .setProperty(FulltextIndexConstants.PROP_USE_IN_SUGGEST, true); root = registerTestNodeType(builder).getNodeState(); IndexDefinition idxDefn = new IndexDefinition(root, builder.getNodeState(), "/foo"); assertTrue(idxDefn.isSuggestEnabled()); }