Wikitty-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- 1653 discussions
r1396 - in trunk/wikitty-api/src: main/java/org/nuiton/wikitty/query test/java/org/nuiton/wikitty
by echatellier@users.nuiton.org 31 Jan '12
by echatellier@users.nuiton.org 31 Jan '12
31 Jan '12
Author: echatellier
Date: 2012-02-01 00:00:17 +0100 (Wed, 01 Feb 2012)
New Revision: 1396
Url: http://nuiton.org/repositories/revision/wikitty/1396
Log:
Fix tests
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/query/WikittyQuery.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientAbstractTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/query/WikittyQuery.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/query/WikittyQuery.java 2012-01-31 16:31:51 UTC (rev 1395)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/query/WikittyQuery.java 2012-01-31 23:00:17 UTC (rev 1396)
@@ -92,7 +92,7 @@
/**
* if true facet is done on extension name. Extention facet can be found
* in {@link WikittyQueryResult#getFacets()} with key
- * {@link Element.EXTENSION.getValue()}
+ * {@link Element.EXTENSION#getValue()}
*/
protected boolean facetExtension = false;
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientAbstractTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientAbstractTest.java 2012-01-31 16:31:51 UTC (rev 1395)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientAbstractTest.java 2012-01-31 23:00:17 UTC (rev 1396)
@@ -129,9 +129,9 @@
* <ul>
* <li>5 categories
* <li>4 books
- * <li>6 catalog node
+ * <li>10 catalog node
* <li>3 movies
- * <li>total = 18 wikitties
+ * <li>total = 22 wikitties
* </ul>
*
* @throws ParseException
@@ -251,7 +251,7 @@
// build tree node with previous wikitties attached into it
// ########################################################
- // Create tree as following : (9)
+ // Create tree as following : (10)
// Catalog
// |_ Media
// | |_ Books
@@ -263,8 +263,10 @@
// | | |_ Biopic (1)
// |_ Everything else
CatalogNode catalogNode = new CatalogNodeImpl("Catalog");
+ CatalogNode mediaNode = new CatalogNodeImpl("Media");
+ mediaNode.setParent(catalogNode.getWikittyId());
CatalogNode bookNode = new CatalogNodeImpl("Books");
- bookNode.setParent(catalogNode.getWikittyId());
+ bookNode.setParent(mediaNode.getWikittyId());
CatalogNode bdNode = new CatalogNodeImpl("Bande dessinées");
bdNode.setParent(bookNode.getWikittyId());
bdNode.addAttachment(bookLan.getWikittyId());
@@ -275,7 +277,7 @@
romanNode.setParent(bookNode.getWikittyId());
romanNode.addAttachment(book42.getWikittyId(), bookLotr.getWikittyId());
CatalogNode moviesNode = new CatalogNodeImpl("Movies");
- moviesNode.setParent(catalogNode.getWikittyId());
+ moviesNode.setParent(mediaNode.getWikittyId());
CatalogNode actionNode = new CatalogNodeImpl("Action");
actionNode.setParent(moviesNode.getWikittyId());
actionNode.addAttachment(dieHardMovie.getId(), dnrMovie.getId());
@@ -284,8 +286,8 @@
biopicNode.addAttachment(edgarMovie.getId());
CatalogNode otherNode = new CatalogNodeImpl("Everything else");
otherNode.setParent(catalogNode.getWikittyId());
- client.store(catalogNode, bookNode, bdNode, newsNode, romanNode,
- moviesNode, actionNode, biopicNode, otherNode);
+ client.store(catalogNode, mediaNode, bookNode, bdNode, newsNode,
+ romanNode, moviesNode, actionNode, biopicNode, otherNode);
}
/**
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java 2012-01-31 16:31:51 UTC (rev 1395)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java 2012-01-31 23:00:17 UTC (rev 1396)
@@ -224,9 +224,10 @@
Assert.assertEquals(id, w.getId());
}
- @Test(expected=WikittyException.class)
+ @Test
public void testStorageRestoreNull() throws Exception {
- wikittyClient.store((Wikitty)null);
+ Wikitty result = wikittyClient.store((Wikitty)null);
+ Assert.assertNull(result);
}
@Test
@@ -997,13 +998,13 @@
// FIXME echatellier 20120125 should work
assumeTrueSearchEngineCanRunTest();
- // 18 wikitty in init
+ // 22 wikitty in init
// only one with price == 42
// test strict equals
WikittyQuery query = new WikittyQueryMaker().ne(Product.FQ_FIELD_PRODUCT_PRICE, 42).end();
WikittyQueryResult<Product> results = wikittyClient.findAllByQuery(Product.class, query);
- Assert.assertEquals(20, results.getTotalResult());
- Assert.assertEquals(20, results.getAll().size());
+ Assert.assertEquals(21, results.getTotalResult());
+ Assert.assertEquals(21, results.getAll().size());
}
/**
@@ -1117,22 +1118,22 @@
@Test
public void testQueryMakerIdneq() throws IOException {
- // + 21 in init db
- importBooks(); // 13 importé = 31
+ // + 22 in init db
+ importBooks(); // 13 importé = 35
// -1 avec cet id
WikittyQuery query = new WikittyQueryMaker().idne("db9dc782-e650-4fd4-83ac-3c1c5c136cde").end();
WikittyQueryResult<Product> results = wikittyClient.findAllByQuery(Product.class, query);
- Assert.assertEquals(33, results.getTotalResult());
+ Assert.assertEquals(34, results.getTotalResult());
}
@Test
public void testQueryParserIdneq() throws IOException {
- // + 21 in init db
- importBooks(); // 13 importé = 31
+ // + 22 in init db
+ importBooks(); // 13 importé = 35
// -1 avec cet id
WikittyQuery query = WikittyQueryParser.parse("id!=db9dc782-e650-4fd4-83ac-3c1c5c136cde");
WikittyQueryResult<Product> results = wikittyClient.findAllByQuery(Product.class, query);
- Assert.assertEquals(33, results.getTotalResult());
+ Assert.assertEquals(34, results.getTotalResult());
}
@Test
@@ -1140,12 +1141,12 @@
// FIXME echatellier 20120125 should work
assumeTrueSearchEngineCanRunTest();
- // + 21 in init db
- importBooks(); // 13 importé = 31
+ // + 22 in init db
+ importBooks(); // 13 importé = 35
// -6 HP
WikittyQuery query = new WikittyQueryMaker().unlike(Product.ELEMENT_FIELD_PRODUCT_NAME, "*Potter*").end();
WikittyQueryResult<Product> results = wikittyClient.findAllByQuery(Product.class, query);
- Assert.assertEquals(28, results.getTotalResult()); // -6 HP = 11
+ Assert.assertEquals(29, results.getTotalResult()); // -6 HP = 11
}
@Test
@@ -1153,12 +1154,12 @@
// FIXME echatellier 20120125 should work
assumeTrueSearchEngineCanRunTest();
- // + 21 in init db
- importBooks(); // 13 importé = 31
+ // + 22 in init db
+ importBooks(); // 13 importé = 35
// -6 HP
WikittyQuery query = WikittyQueryParser.parse("Product.name UNLIKE *Potter*");
WikittyQueryResult<Product> results = wikittyClient.findAllByQuery(Product.class, query);
- Assert.assertEquals(28, results.getTotalResult()); // -6 HP = 11
+ Assert.assertEquals(29, results.getTotalResult()); // -6 HP = 11
}
@Test
@@ -1198,12 +1199,12 @@
// FIXME echatellier 20120125 should work
assumeTrueSearchEngineCanRunTest();
- // + 21 in init db
- importBooks(); // 13 importé = 31
+ // + 22 in init db
+ importBooks(); // 13 importé = 35
// -6 HP
WikittyQuery query = new WikittyQueryMaker().notsw(Product.ELEMENT_FIELD_PRODUCT_NAME, "Harry").end();
WikittyQueryResult<Product> results = wikittyClient.findAllByQuery(Product.class, query);
- Assert.assertEquals(28, results.getTotalResult());
+ Assert.assertEquals(29, results.getTotalResult());
}
@Test
@@ -1211,12 +1212,12 @@
// FIXME echatellier 20120125 should work
assumeTrueSearchEngineCanRunTest();
- // + 21 in init db
- importBooks(); // 13 importé = 31
+ // + 22 in init db
+ importBooks(); // 13 importé = 35
// -6 HP
WikittyQuery query = WikittyQueryParser.parse("Product.name!=Harry*");
WikittyQueryResult<Product> results = wikittyClient.findAllByQuery(Product.class, query);
- Assert.assertEquals(28, results.getTotalResult());
+ Assert.assertEquals(29, results.getTotalResult());
}
@Test
@@ -1224,12 +1225,12 @@
// FIXME echatellier 20120125 should work
assumeTrueSearchEngineCanRunTest();
- // + 21 in init db
- importBooks(); // 13 importé = 31
+ // + 22 in init db
+ importBooks(); // 13 importé = 35
// -1 sorciers
WikittyQuery query = new WikittyQueryMaker().notew(Product.ELEMENT_FIELD_PRODUCT_NAME, "sorciers").end();
WikittyQueryResult<Product> results = wikittyClient.findAllByQuery(Product.class, query);
- Assert.assertEquals(33, results.getTotalResult());
+ Assert.assertEquals(34, results.getTotalResult());
}
@Test
@@ -1237,12 +1238,12 @@
// FIXME echatellier 20120125 should work
assumeTrueSearchEngineCanRunTest();
- // + 21 in init db
- importBooks(); // 13 importé = 31
+ // + 22 in init db
+ importBooks(); // 13 importé = 35
// -1 sorciers
WikittyQuery query = WikittyQueryParser.parse("Product.name!=*sorciers");
WikittyQueryResult<Product> results = wikittyClient.findAllByQuery(Product.class, query);
- Assert.assertEquals(33, results.getTotalResult());
+ Assert.assertEquals(34, results.getTotalResult());
}
@Test
@@ -1310,18 +1311,18 @@
@Test
public void testQueryMakerTrue() {
- // 21 in init db
+ // 22 in init db
WikittyQuery query = new WikittyQueryMaker().rTrue().end();
WikittyQueryResult<Product> results = wikittyClient.findAllByQuery(Product.class, query);
- Assert.assertEquals(21, results.getTotalResult());
+ Assert.assertEquals(22, results.getTotalResult());
}
@Test
public void testQueryParseTrue() {
- // 21 in init db
+ // 22 in init db
WikittyQuery query = WikittyQueryParser.parse("TRUE");
WikittyQueryResult<Product> results = wikittyClient.findAllByQuery(Product.class, query);
- Assert.assertEquals(21, results.getTotalResult());
+ Assert.assertEquals(22, results.getTotalResult());
}
@Test
@@ -1369,10 +1370,10 @@
@Test
public void testQueryMakerNot() {
- // 21 in db (4 products)
+ // 22 in db (4 products)
WikittyQuery query = new WikittyQueryMaker().not().exteq(Product.EXT_PRODUCT).end();
WikittyQueryResult<String> results = wikittyClient.findAllByQuery(query);
- Assert.assertEquals(17, results.getTotalResult());
+ Assert.assertEquals(18, results.getTotalResult());
}
/**
@@ -1529,7 +1530,7 @@
WikittyQuery query1 = WikittyQueryParser.parse("*.name=*");
query1.setSortAscending(new ElementField("*.name"));
WikittyQueryResult<Product> results1 = wikittyClient.findAllByQuery(Product.class, query1);
- Assert.assertEquals(14, results1.getTotalResult());
+ Assert.assertEquals(15, results1.getTotalResult());
}
/**
@@ -1664,12 +1665,11 @@
// 17 books, but only 11 differents prices ?
Assert.assertEquals(11, results1.getTotalResult());
Assert.assertEquals(2, results1.getAll().size());
- // FIXME echatellier 20120125 fails because of "13" != "13.0" (integer in test)
- Assert.assertEquals(13, results1.get(0));
+ Assert.assertEquals("13.0", results1.get(0));
// second
query1.setFirst(0);
- query1.setLimit(-1);
+ query1.setLimit(WikittyQuery.MAX);
results1 = wikittyClient.findAllByQuery(query1);
Assert.assertEquals(17, results1.getTotalResult());
Assert.assertEquals(17, results1.getAll().size());
@@ -1745,7 +1745,7 @@
WikittyQuery q = new WikittyQueryMaker().select("Test.number", Aggregate.AVG).end();
WikittyQueryResult<String> result = wikittyClient.findAllByQuery(q);
System.out.println("q: " + result);
- Assert.assertEquals("3.0", result.peek());
+ Assert.assertEquals("3", result.peek());
}
{
WikittyQuery q = new WikittyQueryMaker().select("Test.number", Aggregate.COUNT).end();
@@ -1783,7 +1783,7 @@
WikittyQuery q = new WikittyQueryMaker().select("Test.number", Aggregate.SUM).end();
WikittyQueryResult<String> result = wikittyClient.findAllByQuery(q);
System.out.println("q: " + result);
- Assert.assertEquals("12.0", result.peek());
+ Assert.assertEquals("12", result.peek());
}
}
@@ -2258,12 +2258,12 @@
CatalogNode bdNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
query = new WikittyQueryMaker().and()
.exteq(WikittyTreeNodeImpl.EXT_WIKITTYTREENODE)
- .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Nouvelles").end();
- CatalogNode newsNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Roman").end();
+ CatalogNode romanNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
WikittyQueryResultTreeNode<String> treeNodeResult =
wikittyClient.findAllIdTreeNode(catalogNode.getWikittyId(), 0, true, null);
- Assert.assertEquals(9, treeNodeResult.getAttCount());
+ Assert.assertEquals(7, treeNodeResult.getAttCount());
WikittyQueryResultTreeNode<String> children =
wikittyClient.findAllIdTreeNode(bookNode.getWikittyId(), 1, true, null);
@@ -2272,8 +2272,8 @@
}
Assert.assertEquals(3, children.getChildCount());
- Assert.assertEquals(2, children.getChild(bdNode.getWikittyId()).getAttCount());
- Assert.assertEquals(1, children.getChild(newsNode.getWikittyId()).getAttCount());
+ Assert.assertEquals(1, children.getChild(bdNode.getWikittyId()).getAttCount());
+ Assert.assertEquals(2, children.getChild(romanNode.getWikittyId()).getAttCount());
}
/**
@@ -2293,7 +2293,7 @@
WikittyQueryResultTreeNode<String> treeNodeResult = wikittyClient.findAllIdTreeNode(catalogNode.getWikittyId(),
0, true, filter);
- // parmis les 9 du test precedent, seulement 1 dans la category society
+ // parmis les 7 du test precedent, seulement 1 dans la category society
Assert.assertEquals(1, treeNodeResult.getAttCount());
}
@@ -2306,7 +2306,7 @@
// delete Lanfeust book, attached to tree
WikittyQuery query = new WikittyQueryMaker().and()
.exteq(Product.EXT_PRODUCT)
- .eq(Product.FIELD_PRODUCT_NAME, "Lanfeust").end();
+ .eq(Product.FQ_FIELD_PRODUCT_NAME, "Lanfeust").end();
String bookId = wikittyClient.findByQuery(query);
wikittyClient.delete(bookId);
@@ -2316,7 +2316,7 @@
CatalogNode catalogNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
WikittyQueryResultTreeNode<String> treeNodeResult =
wikittyClient.findAllIdTreeNode(catalogNode.getWikittyId(), 0, true, null);
- Assert.assertEquals(8, treeNodeResult.getAttCount()); // one deletion
+ Assert.assertEquals(6, treeNodeResult.getAttCount()); // one deletion
}
/**
@@ -2344,7 +2344,7 @@
actionNode.addAttachment("584adc1e-726d-4348-9a57-77153d245b34");
eeNode.addAttachment("db9dc782-e650-4fd4-83ac-3c1c5c136cde");
eeNode.addAttachment("584adc1e-726d-4348-9a57-77153d245b34");
-
+ wikittyClient.store(actionNode, eeNode);
query = new WikittyQueryMaker().and()
.exteq(CatalogNode.EXT_CATALOGNODE)
@@ -2352,7 +2352,7 @@
CatalogNode catalogNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
WikittyQueryResultTreeNode<String> treeNodeResult =
wikittyClient.findAllIdTreeNode(catalogNode.getWikittyId(), 0, true, null);
- Assert.assertEquals(11, treeNodeResult.getAttCount()); // 9 + 2 nouveaux
+ Assert.assertEquals(9, treeNodeResult.getAttCount()); // 7 + 2 nouveaux
}
/**
@@ -2384,7 +2384,7 @@
CatalogNode mediaNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
WikittyQueryResultTreeNode<String> treeNodeResult =
wikittyClient.findAllIdTreeNode(mediaNode.getWikittyId(), 0, true, null);
- Assert.assertEquals(7, treeNodeResult.getAttCount()); // 9 before move
+ Assert.assertEquals(5, treeNodeResult.getAttCount()); // 7 before move
treeNodeResult = wikittyClient.findAllIdTreeNode(eeNode.getWikittyId(), 0, true, null);
Assert.assertEquals(2, treeNodeResult.getAttCount()); // 0 before move
1
0
r1395 - in trunk/wikitty-api/src/main: java/org/nuiton/wikitty java/org/nuiton/wikitty/services resources
by bpoussin@users.nuiton.org 31 Jan '12
by bpoussin@users.nuiton.org 31 Jan '12
31 Jan '12
Author: bpoussin
Date: 2012-01-31 17:31:51 +0100 (Tue, 31 Jan 2012)
New Revision: 1395
Url: http://nuiton.org/repositories/revision/wikitty/1395
Log:
rename authorization to authorisation (US->GB)
Added:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthorisation.java
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfigOption.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyExtensionMigrationRename.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurityExternalAuthentication.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurityExternalAuthenticationLDAP.java
trunk/wikitty-api/src/main/resources/wikitty-config-sample-client.properties
trunk/wikitty-api/src/main/resources/wikitty-config-sample-inmemory.properties
trunk/wikitty-api/src/main/resources/wikitty-config-sample-server-slave.properties
trunk/wikitty-api/src/main/resources/wikitty-config-sample-server.properties
trunk/wikitty-api/src/main/resources/wikitty-config-sample-standalone.properties
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfigOption.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfigOption.java 2012-01-30 18:21:23 UTC (rev 1394)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfigOption.java 2012-01-31 16:31:51 UTC (rev 1395)
@@ -131,7 +131,7 @@
n_("WikittyService to use (list must be in right order. "
+ "ex: org.nuiton.wikitty.WikittyServiceStorage,org.nuiton.wikitty.WikittyServiceNotifier,"
+ "org.nuiton.wikitty.WikittyServiceCached,org.nuiton.wikitty.WikittyServiceAuthentication,"
- + "org.nuiton.wikitty.WikittyServiceAuthorization)"),
+ + "org.nuiton.wikitty.WikittyServiceAuthorisation)"),
WikittyServiceInMemory.class.getName(),
String.class, false, false),
WIKITTY_WIKITTYSERVICEINMEMORY_PERSISTENCE(
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java 2012-01-30 18:21:23 UTC (rev 1394)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java 2012-01-31 16:31:51 UTC (rev 1395)
@@ -55,7 +55,7 @@
* <dd>add a cache for wikitties</dd>
* <dt>{@link WikittyServiceAuthentication}</dt>
* <dd>add user authentication support</dd>
- * <dt>{@link WikittyServiceAuthorization}</dt>
+ * <dt>{@link WikittyServiceAuthorisation}</dt>
* <dd>add right management</dd>
* <dt>{@link WikittyServiceNotifier}</dt>
* <dd>add notifications between client of the same wikitty service</dd>
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyExtensionMigrationRename.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyExtensionMigrationRename.java 2012-01-30 18:21:23 UTC (rev 1394)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyExtensionMigrationRename.java 2012-01-31 16:31:51 UTC (rev 1395)
@@ -53,7 +53,7 @@
/**
* Recursively add extension with requires ones (orderer).
- * WikittyService used in this method must not have WikittyServiceAuthorization
+ * WikittyService used in this method must not have WikittyServiceAuthorisation
* in stack because we pass null as secuirtyToken to method. (TODO poussin
* 2010 verify this assertion, when we use Migration, we don't need
* Security)
Added: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthorisation.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthorisation.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthorisation.java 2012-01-31 16:31:51 UTC (rev 1395)
@@ -0,0 +1,810 @@
+/*
+ * #%L
+ * Wikitty :: api
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package org.nuiton.wikitty.services;
+
+import static org.nuiton.i18n.I18n._;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import org.apache.commons.lang.StringUtils;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.TimeLog;
+import org.nuiton.wikitty.WikittyConfigOption;
+import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.entities.WikittyAuthorisation;
+import org.nuiton.wikitty.entities.WikittyAuthorisationHelper;
+import org.nuiton.wikitty.entities.WikittyExtension;
+import org.nuiton.wikitty.entities.WikittyGroup;
+import org.nuiton.wikitty.entities.WikittyGroupHelper;
+import org.nuiton.wikitty.entities.WikittyMetaExtensionUtil;
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.entities.WikittyTokenHelper;
+import org.nuiton.wikitty.entities.WikittyTreeNode;
+import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.query.WikittyQuery;
+import org.nuiton.wikitty.query.WikittyQueryMaker;
+
+/**
+ * Cette classe gere les autorisations d'acces en utilisant les
+ * WikittyAuthorization, il faut donc que la personne soit loggue et donc
+ * qu'il y ait un WikittyServiceAuthentication dans la pile des services, le
+ * plus souvent avant le WikittyServiceAuthorisation pour que la methode de
+ * login ne but pas sur les autorisations.
+ *
+ *
+ * FIXME add security policy level two on wikittyAuthorisation to prevent writing
+ *
+ * @author poussin
+ * @version $Revision: 1311 $
+ *
+ * Last update: $Date: 2012-01-09 20:03:18 +0100 (Mon, 09 Jan 2012) $
+ * by : $Author: bpoussin $
+ */
+public class WikittyServiceAuthorisation extends WikittyServiceDelegator {
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ final static private Log log = LogFactory.getLog(WikittyServiceAuthorisation.class);
+ /** use to trace time of security code, timelog must not include delegator
+ * time in this class */
+ final static private TimeLog timeLog = new TimeLog(WikittyServiceAuthorisation.class);
+
+ /** cache de l'id du groupe AppAdmin */
+ transient protected String appAdminGroupId = null;
+
+ /**
+ *
+ * @param config
+ * @param ws
+ * @param auth si non null alors un mecanisme d'authentification externe est
+ * utilise
+ */
+ public WikittyServiceAuthorisation(ApplicationConfig config, WikittyService ws) {
+ super(ws);
+ if (config != null) {
+ long timeToLogInfo = config.getOptionAsInt(WikittyConfigOption.
+ WIKITTY_SERVICE_TIME_TO_LOG_INFO.getKey());
+ long timeToLogWarn = config.getOptionAsInt(WikittyConfigOption.
+ WIKITTY_SERVICE_TIME_TO_LOG_WARN.getKey());
+ timeLog.setTimeToLogInfo(timeToLogInfo);
+ timeLog.setTimeToLogWarn(timeToLogWarn);
+ }
+ }
+
+ @Override
+ public void addWikittyServiceListener(WikittyListener listener, ServiceListenerType type) {
+ getDelegate().addWikittyServiceListener(listener, type);
+ }
+
+ @Override
+ public void removeWikittyServiceListener(WikittyListener listener, ServiceListenerType type) {
+ getDelegate().addWikittyServiceListener(listener, type);
+ }
+
+ @Override
+ public WikittyEvent clear(String securityToken) {
+ String userId = getUserId(securityToken);
+ if (isAppAdmin(securityToken, userId)) {
+ // seul les AppAdmin on le droit a cette method
+ WikittyEvent result = getDelegate().clear(securityToken);
+ return result;
+ } else {
+ throw new SecurityException(_("user %s can't clear data", userId));
+ }
+ }
+
+ @Override
+ public WikittyEvent replay(
+ String securityToken, List<WikittyEvent> events, boolean force) {
+ long start = TimeLog.getTime();
+
+ String userId = getUserId(securityToken);
+ for (WikittyEvent e : events) {
+ if (e.getType().contains(
+ WikittyEvent.WikittyEventType.CLEAR_WIKITTY)
+ || e.getType().contains(
+ WikittyEvent.WikittyEventType.CLEAR_EXTENSION)) {
+ if (isAppAdmin(securityToken, userId)) {
+ // seul les AppAdmin on le droit a cette method
+ // les AppAdmin on meme le droit de tout faire, donc on
+ // peut sortir de la boucle
+ break;
+ } else {
+ throw new SecurityException(_("user %s can't clear data", userId));
+ }
+ }
+ if (e.getType().contains(WikittyEvent.WikittyEventType.PUT_WIKITTY)) {
+ checkStore(securityToken, e.getWikitties().values());
+ }
+ if (e.getType().contains(WikittyEvent.WikittyEventType.REMOVE_WIKITTY)) {
+ checkDelete(securityToken, e.getRemoveDate().keySet());
+ }
+ if (e.getType().contains(WikittyEvent.WikittyEventType.PUT_EXTENSION)) {
+ checkStoreExtension(securityToken, e.getExtensions().values());
+ }
+ if (e.getType().contains(WikittyEvent.WikittyEventType.REMOVE_EXTENSION)) {
+ checkDeleteExtension(securityToken, e.getDeletedExtensions());
+ }
+ }
+
+ timeLog.log(start, "replay");
+ WikittyEvent result = getDelegate().replay(securityToken, events, force);
+ return result;
+ }
+
+
+ /**
+ * if app-admin group exists, return true if given userId is app-admin
+ * if app-admin group doesn't exists, return true if user is anonymous
+ */
+ protected boolean userIsAnonymousOrAppAdmin(String securityToken, String userId) {
+ boolean userIsAnonymousOrAppAdmin = false;
+
+ if (getAppAdminGroup(securityToken) == null) {
+ if (securityToken == null) {
+ // user is anonymous
+ userIsAnonymousOrAppAdmin = true;
+ }
+ } else {
+ if (isAppAdmin(securityToken, userId)) {
+ // user is appAdmin
+ userIsAnonymousOrAppAdmin = true;
+ }
+ }
+
+ return userIsAnonymousOrAppAdmin;
+ }
+
+ @Override
+ public WikittyEvent store(String securityToken,
+ Collection<Wikitty> wikitties, boolean force) {
+ long start = TimeLog.getTime();
+ checkStore(securityToken, wikitties);
+ timeLog.log(start, "store");
+ WikittyEvent result = getDelegate().store(securityToken, wikitties, force);
+ return result;
+ }
+
+ /**
+ * Indique si on a bien le droit d'enregistrer tout les wikitties de la
+ * collection. Des que pour un wikitty on a pas les droits, une exception
+ * est levee.
+ *
+ * @param securityToken
+ * @param wikitties
+ * @return
+ */
+ protected void checkStore(String securityToken, Collection<Wikitty> wikitties) {
+ String userId = getUserId(securityToken);
+ for (Wikitty wikitty : wikitties) {
+ if (wikitty == null) {
+ continue;
+ }
+ // usual case, a user want to store a wikitty
+ Wikitty oldVersion = WikittyServiceEnhanced.restore(
+ getDelegate(), securityToken, wikitty.getId());
+
+ Collection<String> newExtensions = new ArrayList<String>(
+ wikitty.getExtensionNames());
+ if (oldVersion != null) {
+ // we already checked the rights for those extension
+ // re-do the check has too much cost, avoid it
+ newExtensions.removeAll(oldVersion.getExtensionNames());
+ }
+
+ // check that **reader** right on Security for all extension
+ for (String extensionName: newExtensions) {
+
+ Wikitty extensionRights = restoreExtensionAuthorisation(
+ securityToken, extensionName);
+ boolean canCreate = extensionRights == null ||
+ canRead(securityToken, userId, null, extensionRights);
+ if ( ! canCreate ) {
+ throw new SecurityException(_(
+ "user %s can't create instance of extension %s",
+ userId, extensionRights));
+ }
+ }
+
+ if (oldVersion != null) { // it's an update
+
+ for (String fqFieldDirtyName : wikitty.getDirty()) {
+
+ String concernedExtensionName = WikittyUtil
+ .getExtensionNameFromFQFieldName(fqFieldDirtyName);
+
+ if (log.isTraceEnabled()) {
+ log.trace(String.format(
+ "will update field %s from extension %s",
+ fqFieldDirtyName, concernedExtensionName));
+ }
+
+ boolean fieldRequireAdminRights = // true if field is a field of WikittyAuthorisation
+ // concerned extension is "WikittyAuthorisation"
+ WikittyAuthorisation.EXT_WIKITTYAUTHORISATION.equals(
+ concernedExtensionName)
+ // or concerned extension is something like "AnyExtension:WikittyAuthorisation"
+ || WikittyAuthorisation.EXT_WIKITTYAUTHORISATION.equals(
+ WikittyUtil.getMetaExtensionNameFromFQMetaExtensionName(
+ concernedExtensionName));
+
+ boolean canChange; // will be true if user can modify the value of this field
+ // according to his level of rights
+ if (fieldRequireAdminRights) {
+ canChange = canAdmin(securityToken,
+ userId, concernedExtensionName, wikitty);
+ } else {
+ canChange = canWrite(securityToken,
+ userId, concernedExtensionName, wikitty);
+ }
+
+ // TODO poussin 20101208 quel est l'interet de faire cette copie ?
+ // surtout quelle ne fonctionne pas car le oldVersion n'a pas
+ // forcement toutes les extensions du nouveau wikitty
+ // Code supprime et remplace
+// if (canChange) {
+// Object newValue = wikitty.getFqField(fqFieldDirtyName);
+// oldVersion.setFqField(fqFieldDirtyName, newValue);
+// } else {
+// throw new SecurityException(_("user %s can't write field %s on wikitty %s",
+// userId, fqFieldDirtyName, wikitty));
+// }
+ if (!canChange) {
+ throw new SecurityException(_("user %s can't write field %s on wikitty %s",
+ userId, fqFieldDirtyName, wikitty));
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public List<Wikitty> restore(String securityToken, List<String> ids) {
+ String userId = getUserId(securityToken);
+ List<Wikitty> wikitties = getDelegate().restore(securityToken, ids);
+
+ long start = TimeLog.getTime();
+ for (Wikitty wikitty : wikitties) {
+ if (wikitty != null) {
+ refuseUnauthorizedRead(securityToken, userId, wikitty);
+ }
+ }
+ timeLog.log(start, "restore");
+ return wikitties;
+ }
+
+ /** throw an exception if read is not allowed */
+ protected void refuseUnauthorizedRead( String securityToken,
+ String userId,
+ Wikitty wikitty) {
+ if (wikitty != null) {
+ for (String extensionName : wikitty.getExtensionNames()) {
+ if ( ! canRead(securityToken, userId, extensionName, wikitty)) {
+ throw new SecurityException(_(
+ "user %s can't read extension %s on wikitty %s,"
+ + " it may be due to a global policy on the wikitty",
+ userId, extensionName, wikitty));
+ }
+ }
+ }
+ }
+
+ protected boolean canRead(String securityToken, String userId,
+ String extensionName, Wikitty wikitty) {
+
+ boolean canRead = false;
+
+ // first, check per-extension rights
+ if (wikitty.hasMetaExtension(WikittyAuthorisation.EXT_WIKITTYAUTHORISATION,
+ extensionName)) {
+ // there is a policy on the extension
+ canRead = isReader(securityToken, userId, wikitty, extensionName)
+ || canWrite(securityToken, userId, extensionName, wikitty);
+ }
+
+ if ( ! canRead &&
+ wikitty.hasExtension(WikittyAuthorisation.EXT_WIKITTYAUTHORISATION) ) {
+ // there is no policy for this extension
+ // but there is a policy for all extension of wikitty
+ canRead = isReader(securityToken, userId, wikitty, null)
+ || canWrite(securityToken, userId, extensionName, wikitty);
+ } else {
+ // no security policy, everything is allowed
+ canRead = true;
+ }
+
+ return canRead;
+ }
+
+ protected boolean canWrite(String securityToken, String userId,
+ String extensionName, Wikitty wikitty) {
+ boolean canWrite = false;
+
+ // first, check per-extension rights
+ if (wikitty.hasMetaExtension(WikittyAuthorisation.EXT_WIKITTYAUTHORISATION,
+ extensionName)) {
+ // there is a policy on the extension of fqFieldDirtyName
+ canWrite = isWriter(securityToken, userId, wikitty, extensionName)
+ || canAdmin(securityToken, userId, extensionName, wikitty);
+ }
+
+ if ( ! canWrite &&
+ wikitty.hasExtension(WikittyAuthorisation.EXT_WIKITTYAUTHORISATION) ) {
+ // there is no policy for this extension
+ // but there is a policy for all extension of wikitty
+ canWrite = isWriter(securityToken, userId, wikitty, null)
+ || canAdmin(securityToken, userId, extensionName, wikitty);
+ } else {
+ // no security policy, everything is allowed
+ canWrite = true;
+ }
+
+ return canWrite;
+ }
+
+ protected boolean canAdmin(String securityToken, String userId,
+ String extensionName, Wikitty wikitty) {
+
+ boolean canAdmin = false;
+
+ // first, check per-extension rights
+ if (wikitty.hasMetaExtension(WikittyAuthorisation.EXT_WIKITTYAUTHORISATION,
+ extensionName)) {
+ // there is a policy on the extension of fqFieldDirtyName
+ canAdmin = isAdmin(securityToken, userId, wikitty, extensionName)
+ || isOwner(securityToken, userId, wikitty, extensionName);
+ }
+ if ( ! canAdmin &&
+ wikitty.hasExtension(WikittyAuthorisation.EXT_WIKITTYAUTHORISATION) ) {
+ // there is no policy for this extension
+ // but there is a policy for all extension of wikitty
+ canAdmin = isAdmin(securityToken, userId, wikitty, null)
+ || isOwner(securityToken, userId, wikitty, null);
+ }
+ if ( ! canAdmin ) {
+ // still not admin, check appAdmin
+ canAdmin = isAppAdmin(securityToken, userId);
+ }
+
+ return canAdmin;
+ }
+
+ @Override
+ public WikittyEvent delete(String securityToken, Collection<String> ids) {
+ long start = TimeLog.getTime();
+ checkDelete(securityToken, ids);
+ timeLog.log(start, "delete");
+ WikittyEvent result = getDelegate().delete(securityToken, ids);
+ return result;
+ }
+
+ /**
+ * Check if we can delete all id passed in argument
+ * @param securityToken
+ * @param ids
+ */
+ public void checkDelete(String securityToken, Collection<String> ids) {
+ String userId = getUserId(securityToken);
+ List<String> idsAsList = new ArrayList<String>(ids);
+ List<Wikitty> wikitties = getDelegate().restore(securityToken, idsAsList);
+ for (Wikitty wikitty : wikitties) {
+ if (wikitty != null) {
+ for (String extensionName : wikitty.getExtensionNames()) {
+ if ( ! canWrite(securityToken, userId, extensionName, wikitty)) {
+ throw new SecurityException(_(
+ "user %s doesn't have rights on extension %s on wikitty %s",
+ userId, extensionName, wikitty));
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public boolean canWrite(String securityToken, Wikitty wikitty) {
+ boolean result = true;
+ String userId = getUserId(securityToken);
+ for (String extName : wikitty.getExtensionNames()) {
+ result = result && isWriter(securityToken, userId, wikitty, extName);
+ if (!result) {
+ break;
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public boolean canDelete(String securityToken, String wikittyId) {
+ boolean result = true;
+ Wikitty wikitty = WikittyServiceEnhanced.restore(
+ getDelegate(), securityToken, wikittyId);
+ if (wikitty != null) {
+ String userId = getUserId(securityToken);
+ for (String extName : wikitty.getExtensionNames()) {
+ result = result && isWriter(securityToken, userId, wikitty, extName);
+ if (!result) {
+ break;
+ }
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public boolean canRead(String securityToken, String wikittyId) {
+ boolean result = true;
+ String userId = getUserId(securityToken);
+ Wikitty wikitty = WikittyServiceEnhanced.restore(getDelegate(), securityToken, wikittyId);
+ if (wikitty == null) {
+ result = false;
+ } else {
+ for (String extName : wikitty.getExtensionNames()) {
+ result = result && isReader(securityToken, userId, wikitty, extName);
+ if (!result) {
+ break;
+ }
+ }
+ }
+ return result;
+ }
+
+ /* *** storing and restoring extensions ***/
+
+ protected void checkStoreExtension(String securityToken,
+ Collection<WikittyExtension> exts) {
+ String userId = getUserId(securityToken);
+ if ( ! isAppAdmin(securityToken, userId)) {
+ for (WikittyExtension extension : exts) {
+ Wikitty extensionAuthorisation = restoreExtensionAuthorisation(securityToken, extension.getName());
+ if (extensionAuthorisation != null) {
+ // canWrite is true if this user can modify the field for this extension
+ boolean canWrite = canWrite(securityToken, userId, null, extensionAuthorisation);
+ if ( ! canWrite) {
+ throw new SecurityException(_("user %s don't have write right for extension %s", userId, extension));
+ }
+ }
+ }
+ }
+ }
+
+ protected void checkDeleteExtension (String securityToken, Collection<String> extNames) {
+ // FIXME 20101115 poussin check security for extension deletion
+ }
+
+ @Override
+ public WikittyEvent storeExtension(String securityToken,
+ Collection<WikittyExtension> exts) {
+ long start = TimeLog.getTime();
+ checkStoreExtension(securityToken, exts);
+ timeLog.log(start, "storeExtension");
+ return getDelegate().storeExtension(securityToken, exts);
+ }
+
+ @Override
+ public WikittyEvent deleteExtension(
+ String securityToken, Collection<String> extNames) {
+ long start = TimeLog.getTime();
+ checkDeleteExtension(securityToken, extNames);
+ timeLog.log(start, "deleteExtension");
+ return getDelegate().deleteExtension(securityToken, extNames);
+ }
+
+ private void checkRestoreTreeNode(String securityToken, String userId, WikittyTreeNode treeNode) {
+ Wikitty treeNodeWikitty = WikittyUtil.getWikitty(getDelegate(), securityToken, treeNode);
+ refuseUnauthorizedRead(securityToken, userId, treeNodeWikitty);
+ }
+
+ @Override
+ public WikittyEvent deleteTree(String securityToken, String treeNodeId) {
+ Wikitty treeNodeWikitty = WikittyServiceEnhanced.restore(
+ getDelegate(), securityToken, treeNodeId);
+
+ long start = TimeLog.getTime();
+ Collection<Wikitty> wikitties = Collections.singletonList(treeNodeWikitty);
+ // TODO poussin 20101222 perhaps we must check deletion authorization
+ // for all children ?
+ checkStore(securityToken, wikitties);
+ timeLog.log(start, "deleteTree");
+ return getDelegate().deleteTree(securityToken, treeNodeId);
+ }
+
+ @Override
+ public Wikitty restoreVersion(String securityToken, String wikittyId, String version) {
+ Wikitty wikitty = getDelegate().restoreVersion(securityToken, wikittyId, version);
+ long start = TimeLog.getTime();
+ String userId = getUserId(securityToken);
+ refuseUnauthorizedRead(securityToken, userId, wikitty);
+ timeLog.log(start, "restoreVersion");
+ return wikitty;
+ }
+
+ @Override
+ public void syncSearchEngine(String securityToken) {
+ long start = TimeLog.getTime();
+ String userId = getUserId(securityToken);
+ if (isAppAdmin(securityToken, userId)) {
+ timeLog.log(start, "syncSearchEngine");
+ // seul les AppAdmin on le droit a cette method
+ getDelegate().syncSearchEngine(securityToken);
+ } else {
+ throw new SecurityException(_("user %s can't sync search engine",
+ getUserId(securityToken)));
+ }
+ }
+
+ //
+ // Method helper to check right
+ //
+
+ /** tell who own a token (who got this token after login).
+ * @param securityToken the token whose owner will be returned
+ * @return a wikitty Id (wikitty has extension WikittyUser)
+ */
+ protected String getUserId(String securityToken) {
+ String result = null;
+ // recuperation de l'utilisateur associe au securityToken
+ // le securityToken est aussi l'id de l'objet
+ if (securityToken != null) {
+ Wikitty securityTokenWikitty = WikittyServiceEnhanced.restore(
+ getDelegate(), securityToken, securityToken);
+ if (securityTokenWikitty == null) {
+ throw new SecurityException("bad (obsolete ?) token");
+ } else {
+ result = WikittyTokenHelper.getUser(securityTokenWikitty);
+ }
+ }
+ return result;
+ }
+
+ /**
+ *
+ * @param securityToken
+ * @param userId
+ * @param wikitty
+ * @param extensionName may be null
+ * @return
+ */
+ protected boolean isReader(String securityToken, String userId, Wikitty wikitty, String extensionName) {
+ boolean result;
+ String metaFieldName = WikittyUtil.getMetaFieldName(
+ WikittyAuthorisation.EXT_WIKITTYAUTHORISATION, extensionName,
+ WikittyAuthorisation.FIELD_WIKITTYAUTHORISATION_READER);
+ result = isMember(securityToken, userId, wikitty, metaFieldName, true);
+ return result;
+ }
+
+ /**
+ *
+ * @param securityToken
+ * @param userId
+ * @param wikitty
+ * @param extensionName may be null
+ * @return
+ */
+ protected boolean isWriter(String securityToken, String userId, Wikitty wikitty, String extensionName) {
+ boolean result;
+ String metaFieldName = WikittyUtil.getMetaFieldName(
+ WikittyAuthorisation.EXT_WIKITTYAUTHORISATION, extensionName,
+ WikittyAuthorisation.FIELD_WIKITTYAUTHORISATION_WRITER);
+ log.trace("meta field name " + metaFieldName);
+ result = isMember(securityToken, userId, wikitty, metaFieldName);
+ return result;
+ }
+
+ /**
+ *
+ * @param securityToken
+ * @param userId
+ * @param wikitty
+ * @param extensionName may be null
+ * @return
+ */
+ protected boolean isAdmin(String securityToken, String userId, Wikitty wikitty, String extensionName) {
+ boolean result;
+ String metaFieldName = WikittyUtil.getMetaFieldName(
+ WikittyAuthorisation.EXT_WIKITTYAUTHORISATION, extensionName,
+ WikittyAuthorisation.FIELD_WIKITTYAUTHORISATION_ADMIN);
+ result = isMember(securityToken, userId, wikitty, metaFieldName);
+ return result;
+ }
+
+ /** true if given user is owner
+ *
+ * @param securityToken
+ * @param userId
+ * @param wikitty
+ * @param extensionName may be null
+ * @return
+ */
+ protected boolean isOwner(String securityToken, String userId, Wikitty wikitty, String extensionName) {
+
+ String metaFieldName = WikittyUtil.getMetaFieldName(
+ WikittyAuthorisation.EXT_WIKITTYAUTHORISATION, extensionName,
+ WikittyAuthorisation.FIELD_WIKITTYAUTHORISATION_OWNER);
+
+ String actualExtensionName = WikittyUtil.getExtensionNameFromFQFieldName(metaFieldName);
+ String fieldName = WikittyUtil.getFieldNameFromFQFieldName(metaFieldName);
+
+ String owner = wikitty.getFieldAsString(actualExtensionName, fieldName);
+
+ boolean isOwner;
+ if (owner == null) {
+ isOwner = false;
+ } else {
+ isOwner = owner.equals(userId);
+ }
+ return isOwner;
+ }
+
+ /** {@link #isMember(String, String, Wikitty, String, boolean)} with default value */
+ protected boolean isMember(String securityToken, String userId, Wikitty extensionRights, String fqFieldName) {
+ // by default, user is considered not member if he is not in the group, so passing "false"
+ return isMember(securityToken, userId, extensionRights, fqFieldName, false);
+ }
+
+ /** check if a user is listed in a level of rights
+ *
+ * @param securityToken
+ * @param userId the userId to look for
+ * @param extensionRights a wikitty with WikittyAuthorisation as extension <strong>OR</strong> meta-extension
+ * @param fqFieldName the field to look into, it should be one of the field of extension WikittyAuthorisation
+ * it has to be a FQN and may contain an extension-name if using meta-extension
+ * @param considerEmptyGroupAsMembership if true, an empty field value will be considered as
+ * "every-one is in the group". Most of the time, it will be false but true should be
+ * passed for "reader" level because user has right to read if he belongs to "reader" OR
+ * if reader is empty
+ * @return true if userId appear in the single/list of group/user of given field
+ */
+ protected boolean isMember(String securityToken, String userId,
+ Wikitty extensionRights, String fqFieldName, boolean considerEmptyGroupAsMembership) {
+
+ String extensionName = WikittyUtil.getExtensionNameFromFQFieldName(fqFieldName);
+ String fieldName = WikittyUtil.getFieldNameFromFQFieldName(fqFieldName);
+
+ Set<String> groupOrUser = extensionRights.getFieldAsSet(extensionName,
+ fieldName,
+ String.class);
+
+ boolean isMember;
+ if (groupOrUser == null || groupOrUser.isEmpty()) {
+ isMember = considerEmptyGroupAsMembership;
+ } else {
+ isMember = isMember(securityToken, userId, groupOrUser);
+ }
+
+ if ( ! isMember) {
+ // user don't have right on current object, check parent right
+ String parentId = WikittyAuthorisationHelper.getParent(extensionRights);
+ if (parentId != null) {
+ Wikitty parent = WikittyServiceEnhanced.restore(
+ getDelegate(), securityToken, parentId);
+ if (parent != null) {
+ isMember = isMember(securityToken, userId, parent, fqFieldName);
+ }
+ }
+ }
+ return isMember;
+ }
+
+ /** check if a given user belong to the group of app-admins. */
+ protected boolean isAppAdmin(String securityToken, String userId) {
+ // si le group n'existe pas alors tout le monde est admin
+ boolean result = true;
+ Wikitty group = getAppAdminGroup(securityToken);
+ if (group != null) {
+ Set<String> ids = WikittyGroupHelper.getMembers(group);
+ result = isMember(securityToken, userId, ids);
+ }
+ return result;
+ }
+
+ /** get the wikitty with extension WikittyGroup that contains all app-admin. */
+ protected Wikitty getAppAdminGroup(String securityToken) {
+ // on a deja fait la recherche precedement, on essaie de reutilise
+ // le meme id
+ Wikitty group = WikittyServiceEnhanced.restore(
+ getDelegate(), securityToken, appAdminGroupId);
+ if (group == null) {
+ // 1er fois, on le recherche
+ WikittyQuery criteria = new WikittyQueryMaker()
+ .eq(WikittyGroup.FQ_FIELD_WIKITTYGROUP_NAME,
+ WikittySecurityHelper.WIKITTY_APPADMIN_GROUP_NAME).end();
+ String groupId = getDelegate().findByQuery(
+ securityToken, Collections.singletonList(criteria)).get(0);
+ appAdminGroupId = groupId;
+ group = WikittyServiceEnhanced.restore(
+ getDelegate(), securityToken, appAdminGroupId);
+ }
+
+ return group;
+ }
+
+ /**
+ * Verifie recursivement si un utilisateur est dans un groupe qui peut etre
+ * constitue d'autre groupe ou d'utilisateur
+ *
+ * @param userId l'utilisateur recherche
+ * @param groupOrUser la liste des id d'utilisateurs ou d'autres groupes
+ * @return vrai si userId est retrouve, false sinon
+ */
+ protected boolean isMember(
+ String securityToken, String userId, Set<String> groupOrUser) {
+ if (groupOrUser != null) {
+ for (String id : groupOrUser) {
+ if (StringUtils.equals(id, userId)) {
+ // on a l'id du user, on l'autorise
+ return true;
+ } else {
+ // sinon, on charge l'objet car ca pourrait etre un groupe
+ // dans lequel il faut cherche le user
+ Wikitty groupWikitty = WikittyServiceEnhanced.restore(
+ getDelegate(), securityToken, id);
+ if (groupWikitty != null &&
+ WikittyGroupHelper.hasExtension(groupWikitty)) {
+ Set<String> members =
+ WikittyGroupHelper.getMembers(groupWikitty);
+ return isMember(securityToken, userId, members);
+ }
+ }
+ }
+ }
+ return false; // not found in groupOrUser
+ }
+
+ /**
+ * restore the wikitty authorisation attached to given extension.
+ *
+ * @return a wikitty with WikittyAuthorisation extension, or null if given
+ * extension has no security policy attached
+ */
+ protected Wikitty restoreExtensionAuthorisation(String securityToken,
+ WikittyExtension extension) {
+ return restoreExtensionAuthorisation(securityToken, extension.getName());
+ }
+
+ /**
+ * restore the wikitty authorisation attached to given extension.
+ *
+ * @return a wikitty with WikittyAuthorisation extension, or null if given
+ * extension has no security policy attached
+ */
+ protected Wikitty restoreExtensionAuthorisation(String securityToken,
+ String extensionName) {
+ String wikittyAuthorisationId = WikittyMetaExtensionUtil.generateId(
+ WikittyAuthorisation.EXT_WIKITTYAUTHORISATION, extensionName);
+ Wikitty wikittyAuthorisation = WikittyServiceEnhanced.restore(
+ getDelegate(), securityToken, wikittyAuthorisationId);
+ if (wikittyAuthorisation == null) {
+ log.debug(extensionName + " has no authorization attached");
+ }
+ return wikittyAuthorisation;
+ }
+
+}
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java 2012-01-30 18:21:23 UTC (rev 1394)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java 2012-01-31 16:31:51 UTC (rev 1395)
@@ -67,7 +67,7 @@
*
* Last update: $Date$
* by : $Author$
- * @deprecated since 3.4 use WikittyServiceAuthentication and WikittyServiceAuthorization
+ * @deprecated since 3.4 use WikittyServiceAuthentication and WikittyServiceAuthorisation
*/
@Deprecated
public class WikittyServiceSecurity extends WikittyServiceDelegator {
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurityExternalAuthentication.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurityExternalAuthentication.java 2012-01-30 18:21:23 UTC (rev 1394)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurityExternalAuthentication.java 2012-01-31 16:31:51 UTC (rev 1395)
@@ -10,7 +10,7 @@
*
* Last update: $Date$
* by : $Author$
- * @deprecated since 3.4 use WikittyServiceAuthentication and WikittyServiceAuthorization
+ * @deprecated since 3.4 use WikittyServiceAuthentication and WikittyServiceAuthorisation
*/
@Deprecated
public interface WikittyServiceSecurityExternalAuthentication {
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurityExternalAuthenticationLDAP.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurityExternalAuthenticationLDAP.java 2012-01-30 18:21:23 UTC (rev 1394)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurityExternalAuthenticationLDAP.java 2012-01-31 16:31:51 UTC (rev 1395)
@@ -19,7 +19,7 @@
*
* Last update: $Date$
* by : $Author$
- * @deprecated since 3.4 use WikittyServiceAuthenticationLDAP and WikittyServiceAuthorization
+ * @deprecated since 3.4 use WikittyServiceAuthenticationLDAP and WikittyServiceAuthorisation
*/
@Deprecated
public class WikittyServiceSecurityExternalAuthenticationLDAP
Modified: trunk/wikitty-api/src/main/resources/wikitty-config-sample-client.properties
===================================================================
--- trunk/wikitty-api/src/main/resources/wikitty-config-sample-client.properties 2012-01-30 18:21:23 UTC (rev 1394)
+++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-client.properties 2012-01-31 16:31:51 UTC (rev 1395)
@@ -25,7 +25,7 @@
wikitty.WikittyService.components=org.nuiton.wikitty.services.WikittyServiceHessianClient,\
org.nuiton.wikitty.services.WikittyServiceNotifier,\
org.nuiton.wikitty.services.WikittyServiceCached,\
-org.nuiton.wikitty.services.WikittyServiceAuthorization
+org.nuiton.wikitty.services.WikittyServiceAuthorisation
wikitty.WikittyServiceNotifier.components=org.nuiton.wikitty.services.XMPPNotifierTransporter
wikitty.WikittyServiceCached.components=org.nuiton.wikitty.services.WikittyCacheJCS
wikitty.service.cache.allwaysRestoreCopies=false
Modified: trunk/wikitty-api/src/main/resources/wikitty-config-sample-inmemory.properties
===================================================================
--- trunk/wikitty-api/src/main/resources/wikitty-config-sample-inmemory.properties 2012-01-30 18:21:23 UTC (rev 1394)
+++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-inmemory.properties 2012-01-31 16:31:51 UTC (rev 1395)
@@ -36,7 +36,7 @@
org.nuiton.wikitty.services.WikittyServiceNotifier,\
org.nuiton.wikitty.services.WikittyServiceCached,\
org.nuiton.wikitty.services.WikittyServiceAuthentication,\
-org.nuiton.wikitty.services.WikittyServiceAuthorization
+org.nuiton.wikitty.services.WikittyServiceAuthorisation
wikitty.WikittyServiceStorage.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\
org.nuiton.wikitty.jdbc.WikittyStorageJDBC,\
org.nuiton.wikitty.storage.solr.WikittySearchEngineSolr
Modified: trunk/wikitty-api/src/main/resources/wikitty-config-sample-server-slave.properties
===================================================================
--- trunk/wikitty-api/src/main/resources/wikitty-config-sample-server-slave.properties 2012-01-30 18:21:23 UTC (rev 1394)
+++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-server-slave.properties 2012-01-31 16:31:51 UTC (rev 1395)
@@ -38,7 +38,7 @@
org.nuiton.wikitty.services.WikittyServiceSlave,\
org.nuiton.wikitty.services.WikittyServiceNotifier,\
org.nuiton.wikitty.services.WikittyServiceCached,\
-org.nuiton.wikitty.services.WikittyServiceAuthorization,\
+org.nuiton.wikitty.services.WikittyServiceAuthorisation,\
org.nuiton.wikitty.services.WikittyServiceHessianServer
wikitty.WikittyServiceStorage.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\
org.nuiton.wikitty.jdbc.WikittyStorageJDBC,\
Modified: trunk/wikitty-api/src/main/resources/wikitty-config-sample-server.properties
===================================================================
--- trunk/wikitty-api/src/main/resources/wikitty-config-sample-server.properties 2012-01-30 18:21:23 UTC (rev 1394)
+++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-server.properties 2012-01-31 16:31:51 UTC (rev 1395)
@@ -38,7 +38,7 @@
org.nuiton.wikitty.services.WikittyServiceNotifier,\
org.nuiton.wikitty.services.WikittyServiceCached,\
org.nuiton.wikitty.services.WikittyServiceAuthentication,\
-org.nuiton.wikitty.services.WikittyServiceAuthorization,\
+org.nuiton.wikitty.services.WikittyServiceAuthorisation,\
org.nuiton.wikitty.services.WikittyServiceHessianServer
wikitty.WikittyServiceStorage.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\
org.nuiton.wikitty.jdbc.WikittyStorageJDBC,\
Modified: trunk/wikitty-api/src/main/resources/wikitty-config-sample-standalone.properties
===================================================================
--- trunk/wikitty-api/src/main/resources/wikitty-config-sample-standalone.properties 2012-01-30 18:21:23 UTC (rev 1394)
+++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-standalone.properties 2012-01-31 16:31:51 UTC (rev 1395)
@@ -38,7 +38,7 @@
org.nuiton.wikitty.services.WikittyServiceNotifier,\
org.nuiton.wikitty.services.WikittyServiceCached,\
org.nuiton.wikitty.services.WikittyServiceAuthentication,\
-org.nuiton.wikitty.services.WikittyServiceAuthorization
+org.nuiton.wikitty.services.WikittyServiceAuthorisation
wikitty.WikittyServiceStorage.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\
org.nuiton.wikitty.jdbc.WikittyStorageJDBC,\
org.nuiton.wikitty.storage.solr.WikittySearchEngineSolr
1
0
30 Jan '12
Author: bpoussin
Date: 2012-01-30 19:21:23 +0100 (Mon, 30 Jan 2012)
New Revision: 1394
Url: http://nuiton.org/repositories/revision/wikitty/1394
Log:
remove trainling 0 at end of BigDecimal if not needed
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2012-01-30 18:02:00 UTC (rev 1393)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2012-01-30 18:21:23 UTC (rev 1394)
@@ -471,7 +471,7 @@
getClass(value)), eee);
}
}
- return result;
+ return result.stripTrailingZeros();
}
/**
1
0
30 Jan '12
Author: bpoussin
Date: 2012-01-30 19:02:00 +0100 (Mon, 30 Jan 2012)
New Revision: 1393
Url: http://nuiton.org/repositories/revision/wikitty/1393
Log:
remove trainling 0 at end of BigDecimal if not needed
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2012-01-30 17:14:08 UTC (rev 1392)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2012-01-30 18:02:00 UTC (rev 1393)
@@ -519,6 +519,8 @@
result = solrDateFormat.format((Date) value);
} else if (value instanceof Calendar) {
result = solrDateFormat.format((Calendar)value);
+ } else if (value instanceof BigDecimal) {
+ result = ((BigDecimal)value).stripTrailingZeros().toString();
} else {
// try to convert to String
result = value.toString();
1
0
r1392 - trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr
by bpoussin@users.nuiton.org 30 Jan '12
by bpoussin@users.nuiton.org 30 Jan '12
30 Jan '12
Author: bpoussin
Date: 2012-01-30 18:14:08 +0100 (Mon, 30 Jan 2012)
New Revision: 1392
Url: http://nuiton.org/repositories/revision/wikitty/1392
Log:
Anomalie #1924: Can't call wikittyClient.findAllIdTreeNode(String, int, boolean, Query) with null filter
check filter nullity
Modified:
trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java
Modified: trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java
===================================================================
--- trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java 2012-01-30 17:05:29 UTC (rev 1391)
+++ trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java 2012-01-30 17:14:08 UTC (rev 1392)
@@ -856,9 +856,12 @@
// TODO poussin 20110128 regarder si on ne peut pas
// restreindre les facettes aux noeuds trouve dans la recherche
// precedente
- WikittyQuery attQuery = new WikittyQueryMaker()
- .and().condition(filter.getCondition())
- .eq(TREENODE_ATTACHED_ALL, wikittyId).end()
+ WikittyQueryMaker attQueryMaker = new WikittyQueryMaker();
+ if (filter != null) {
+ attQueryMaker.and().condition(filter.getCondition());
+ }
+ WikittyQuery attQuery =
+ attQueryMaker.eq(TREENODE_ATTACHED_ALL, wikittyId).end()
.setFirst(0).setLimit(0)
.addFacetField(new ElementField(TREENODE_ATTACHED_ALL))
// l'arbre peut avoir beaucoup de branche, il
1
0
r1391 - trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services
by bpoussin@users.nuiton.org 30 Jan '12
by bpoussin@users.nuiton.org 30 Jan '12
30 Jan '12
Author: bpoussin
Date: 2012-01-30 18:05:29 +0100 (Mon, 30 Jan 2012)
New Revision: 1391
Url: http://nuiton.org/repositories/revision/wikitty/1391
Log:
Anomalie #1922: UnsupportedOperationException Collections$SingletonSet$1.remove
all time make set copy
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java 2012-01-30 13:24:05 UTC (rev 1390)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java 2012-01-30 17:05:29 UTC (rev 1391)
@@ -179,10 +179,10 @@
@Override
public WikittyEvent store(String securityToken,
Collection<Wikitty> wikitties, boolean force) {
- if (!(wikitties instanceof Set)) {
- // use all time Set to prevent duplicated wikitty in collection
- wikitties = new LinkedHashSet<Wikitty>(wikitties);
- }
+
+ // use all time Set to prevent duplicated wikitty in collection
+ wikitties = new LinkedHashSet<Wikitty>(wikitties);
+
// suppress null wikitty
wikitties.remove(null);
1
0
r1390 - trunk/wikitty-api/src/test/java/org/nuiton/wikitty
by echatellier@users.nuiton.org 30 Jan '12
by echatellier@users.nuiton.org 30 Jan '12
30 Jan '12
Author: echatellier
Date: 2012-01-30 14:24:05 +0100 (Mon, 30 Jan 2012)
New Revision: 1390
Url: http://nuiton.org/repositories/revision/wikitty/1390
Log:
En test refactoring (remove all useless conform test classes)
Removed:
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/
1
0
r1389 - in trunk: wikitty-api/src/test/java/org/nuiton/wikitty wikitty-api/src/test/java/org/nuiton/wikitty/conform wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr
by echatellier@users.nuiton.org 30 Jan '12
by echatellier@users.nuiton.org 30 Jan '12
30 Jan '12
Author: echatellier
Date: 2012-01-30 12:23:24 +0100 (Mon, 30 Jan 2012)
New Revision: 1389
Url: http://nuiton.org/repositories/revision/wikitty/1389
Log:
En test refactoring (remove all useless conform test classes)
Removed:
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/AbstractTestConformance.java
trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/AbstractTestSolr.java
trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrTestHelper.java
trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/TreeTest.java
Modified:
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java 2012-01-30 10:55:42 UTC (rev 1388)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java 2012-01-30 11:23:24 UTC (rev 1389)
@@ -2263,8 +2263,7 @@
WikittyQueryResultTreeNode<String> treeNodeResult =
wikittyClient.findAllIdTreeNode(catalogNode.getWikittyId(), 0, true, null);
- int val = treeNodeResult.getAttCount();
- Assert.assertEquals(9, val);
+ Assert.assertEquals(9, treeNodeResult.getAttCount());
WikittyQueryResultTreeNode<String> children =
wikittyClient.findAllIdTreeNode(bookNode.getWikittyId(), 1, true, null);
@@ -2285,7 +2284,7 @@
public void testSearchEngineCountAttachmentFiltered() {
WikittyQuery query = new WikittyQueryMaker().and()
- .exteq(WikittyTreeNodeImpl.EXT_WIKITTYTREENODE)
+ .exteq(CatalogNode.EXT_CATALOGNODE)
.eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Catalog").end();
CatalogNode catalogNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
@@ -2294,8 +2293,100 @@
WikittyQueryResultTreeNode<String> treeNodeResult = wikittyClient.findAllIdTreeNode(catalogNode.getWikittyId(),
0, true, filter);
- int val = treeNodeResult.getAttCount();
// parmis les 9 du test precedent, seulement 1 dans la category society
- Assert.assertEquals(1, val);
+ Assert.assertEquals(1, treeNodeResult.getAttCount());
}
+
+ /**
+ * Test le nombre d'attachment (fichiers attachés) au noeud des arbres.
+ */
+ @Test
+ public void testSearchEngineCountAttachmentAfterDeletion() {
+
+ // delete Lanfeust book, attached to tree
+ WikittyQuery query = new WikittyQueryMaker().and()
+ .exteq(Product.EXT_PRODUCT)
+ .eq(Product.FIELD_PRODUCT_NAME, "Lanfeust").end();
+ String bookId = wikittyClient.findByQuery(query);
+ wikittyClient.delete(bookId);
+
+ query = new WikittyQueryMaker().and()
+ .exteq(CatalogNode.EXT_CATALOGNODE)
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Catalog").end();
+ CatalogNode catalogNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
+ WikittyQueryResultTreeNode<String> treeNodeResult =
+ wikittyClient.findAllIdTreeNode(catalogNode.getWikittyId(), 0, true, null);
+ Assert.assertEquals(8, treeNodeResult.getAttCount()); // one deletion
+ }
+
+ /**
+ * Test le nombre d'attachment (fichiers attachés) au noeud des arbres.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testSearchEngineCountAttachmentMultipleSameNode() throws IOException {
+ importBooks();
+
+ // delete Lanfeust book, attached to tree
+ WikittyQuery query = new WikittyQueryMaker().and()
+ .exteq(CatalogNode.EXT_CATALOGNODE)
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Action").end();
+ CatalogNode actionNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
+
+ query = new WikittyQueryMaker().and()
+ .exteq(CatalogNode.EXT_CATALOGNODE)
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Everything else").end();
+ CatalogNode eeNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
+
+ // 4 attachement en plus, mais sur seulement 2 livres
+ actionNode.addAttachment("db9dc782-e650-4fd4-83ac-3c1c5c136cde");
+ actionNode.addAttachment("584adc1e-726d-4348-9a57-77153d245b34");
+ eeNode.addAttachment("db9dc782-e650-4fd4-83ac-3c1c5c136cde");
+ eeNode.addAttachment("584adc1e-726d-4348-9a57-77153d245b34");
+
+
+ query = new WikittyQueryMaker().and()
+ .exteq(CatalogNode.EXT_CATALOGNODE)
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Catalog").end();
+ CatalogNode catalogNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
+ WikittyQueryResultTreeNode<String> treeNodeResult =
+ wikittyClient.findAllIdTreeNode(catalogNode.getWikittyId(), 0, true, null);
+ Assert.assertEquals(11, treeNodeResult.getAttCount()); // 9 + 2 nouveaux
+ }
+
+ /**
+ * Test le nombre d'attachment (fichiers attachés) au noeud des arbres.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testSearchEngineCountAttachmentNodeMove() throws IOException {
+
+ // delete Lanfeust book, attached to tree
+ WikittyQuery query = new WikittyQueryMaker().and()
+ .exteq(CatalogNode.EXT_CATALOGNODE)
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Action").end();
+ CatalogNode actionNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
+
+ query = new WikittyQueryMaker().and()
+ .exteq(CatalogNode.EXT_CATALOGNODE)
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Everything else").end();
+ CatalogNode eeNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
+
+ // move action node
+ actionNode.setParent(eeNode.getWikittyId());
+ wikittyClient.store(actionNode);
+
+ query = new WikittyQueryMaker().and()
+ .exteq(CatalogNode.EXT_CATALOGNODE)
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Media").end();
+ CatalogNode mediaNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
+ WikittyQueryResultTreeNode<String> treeNodeResult =
+ wikittyClient.findAllIdTreeNode(mediaNode.getWikittyId(), 0, true, null);
+ Assert.assertEquals(7, treeNodeResult.getAttCount()); // 9 before move
+
+ treeNodeResult = wikittyClient.findAllIdTreeNode(eeNode.getWikittyId(), 0, true, null);
+ Assert.assertEquals(2, treeNodeResult.getAttCount()); // 0 before move
+ }
}
Deleted: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/AbstractTestConformance.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/AbstractTestConformance.java 2012-01-30 10:55:42 UTC (rev 1388)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/AbstractTestConformance.java 2012-01-30 11:23:24 UTC (rev 1389)
@@ -1,204 +0,0 @@
-/*
- * #%L
- * Wikitty :: api
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.wikitty.conform;
-
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.LinkedHashMap;
-import java.util.Map.Entry;
-
-import junit.framework.Assert;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.wikitty.WikittyProxy;
-import org.nuiton.wikitty.entities.FieldType;
-import org.nuiton.wikitty.entities.WikittyTypes;
-import org.nuiton.wikitty.entities.Wikitty;
-import org.nuiton.wikitty.entities.WikittyExtension;
-import org.nuiton.wikitty.entities.WikittyImpl;
-import org.nuiton.wikitty.WikittyService;
-import org.nuiton.wikitty.WikittyServiceFactory;
-import org.nuiton.wikitty.WikittyUtil;
-
-public abstract class AbstractTestConformance {
-
- public static final String EXTNAME = "wikittyExt";
- public static final String EXTREQUIRED = "wikittyRequired";
- public static final String EXTREQUIRES = "wikittyRequires";
-
- private final static Log log = LogFactory.getLog(AbstractTestConformance.class);
-
- public static final WikittyExtension EXT_REQUIRED =
- createExtension(EXTREQUIRED, null);
-
- public static final WikittyExtension EXT_REQUIRES =
- createExtension(EXTREQUIRES, EXTREQUIRED);
-
- public static final WikittyExtension EXT_TEST =
- createExtension(EXTNAME, null,
- createType(WikittyTypes.STRING, 0, 1),
- createType(WikittyTypes.NUMERIC, 1, 1),
- createType(WikittyTypes.DATE, 1, 1)
- );
-
- private WikittyService ws;
- protected WikittyProxy proxy = null;
-
- abstract public ApplicationConfig getConfig();
-
- public WikittyProxy getProxy() {
- if (proxy == null) {
- proxy = new WikittyProxy(getWikittyService());
- }
- return proxy;
- }
-
- public WikittyService getWikittyService() {
- if (ws == null) {
- ws = WikittyServiceFactory.buildWikittyService(getConfig());
- }
- return ws;
- }
-
- public void setWikittyService(WikittyService wikittyService) {
- this.ws = wikittyService;
- }
-
-
- protected static FieldType createType( WikittyTypes type, int lower, int upper ) {
- FieldType fieldType = new FieldType(type, lower, upper);
- return fieldType;
- }
-
- protected static Wikitty createBasicWikitty() {
- return createWikitty( EXT_TEST );
- }
-
- protected static Wikitty createWikitty( WikittyExtension... extensions ) {
- Wikitty w = new WikittyImpl();
- for ( WikittyExtension ext : extensions ) {
- w.addExtension( ext );
- }
- return w;
- }
-
- protected static WikittyExtension createExtension(String extName, String requires,
- FieldType... types) {
- LinkedHashMap<String, FieldType> fieldsMap = new LinkedHashMap<String, FieldType>();
- for ( int i = 0; i < types.length; i++ ) {
- fieldsMap.put( "fieldName" + i, types[i] );
- }
- return new WikittyExtension(extName, "1", null, requires, fieldsMap);
- }
-
- public static String format(String dateTestFormat) {
- try {
- return WikittyUtil.formatDate(
- dateTestFormat == null || dateTestFormat.isEmpty()
- ? new Date()
- : parse(dateTestFormat)
- );
- } catch (ParseException e) {
- Assert.fail( "Error format date : " + dateTestFormat );
- e.printStackTrace();
- return null;
- }
- }
-
- public static Date parse(String dateAsString) {
- try {
- return WikittyUtil.parseDate(dateAsString);
- } catch (ParseException e) {
- Assert.fail( "Error parsing date : " + dateAsString );
- e.printStackTrace();
- return null;
- }
- }
-
- protected static ArrayList<Wikitty> createSampleWikitty( WikittyService ws ) {
- ArrayList<Wikitty> result = new ArrayList<Wikitty>();
- String[] wValues = new String[] {
- // wikitty[ 0 ]
- "fieldName0 = table," +
- "fieldName1 = 003300," +
- "fieldName2 = " + format("23/01/1982"),
-
- // wikitty[ 1 ]
- "fieldName0 = chaise," +
- "fieldName1 = 113311," +
- "fieldName2 = " + format("26/09/2009"),
-
- // wikitty[ 2 ]
- "fieldName0 = bureau," +
- "fieldName1 = 223322," +
- "fieldName2 = " + format("25/12/2029")
- };
- for ( String wValue : wValues ) {
- Wikitty w = createWikitty( wValue, EXTNAME, EXT_TEST );
- result.add( w );
- }
- ws.store(null, result, false);
- return result;
- }
-
-
-
- public static Wikitty createWikitty( String values, String defaultExtName, WikittyExtension... exts ) {
- Wikitty w = new WikittyImpl();
- for (WikittyExtension ext : exts) {
- w.addExtension(ext);
- }
- for( Entry<String, String> keyValuePair : getKeyPairs(values) ) {
- String[] s = keyValuePair.getKey().split("\\.");
- String fieldName = null, extName = null;
- if ( s.length > 1 ) {
- fieldName = s[1].trim();
- extName = s[0].trim();
- }
- else {
- fieldName = s[0].trim();
- extName = defaultExtName;
- }
- w.setField(extName, fieldName, keyValuePair.getValue());
- }
- return w;
- }
-
- protected static Iterable<Entry<String, String>> getKeyPairs(String values) {
- LinkedHashMap<String, String> keyPairs = new LinkedHashMap<String, String>();
- for ( String keyValuePair : values.split(",") ) {
- String[] l = keyValuePair.split("=");
- String key = l[0].trim();
- String value = l.length > 1 ? l[1].trim() : null;
- keyPairs.put(key, value);
- }
- return keyPairs.entrySet();
- }
-
-
-}
Deleted: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/AbstractTestSolr.java
===================================================================
--- trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/AbstractTestSolr.java 2012-01-30 10:55:42 UTC (rev 1388)
+++ trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/AbstractTestSolr.java 2012-01-30 11:23:24 UTC (rev 1389)
@@ -1,53 +0,0 @@
-/*
- * #%L
- * Wikitty :: wikitty-solr-impl
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.wikitty.storage.solr;
-
-import org.junit.Before;
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.wikitty.WikittyConfig;
-import org.nuiton.wikitty.WikittyProxy;
-import org.nuiton.wikitty.services.WikittyServiceEnhanced;
-
-public abstract class AbstractTestSolr {
-
- protected WikittyProxy proxy = null;
-
- protected static ApplicationConfig instance = WikittyConfig.getConfig("wikitty-config-sample-inmemory.properties");
-
- protected static WikittyServiceEnhanced ws;
-
- public WikittyProxy getProxy() {
- if (proxy == null) {
- proxy = new WikittyProxy(ws);
- }
- return proxy;
- }
-
- @Before
- public void deleteAll() throws Exception {
- ws.clear(null);
- }
-
-}
Deleted: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrTestHelper.java
===================================================================
--- trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrTestHelper.java 2012-01-30 10:55:42 UTC (rev 1388)
+++ trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrTestHelper.java 2012-01-30 11:23:24 UTC (rev 1389)
@@ -1,63 +0,0 @@
-/*
- * #%L
- * Wikitty :: wikitty-solr
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2009 - 2011 CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.wikitty.storage.solr;
-
-import java.io.File;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.wikitty.WikittyConfigOption;
-
-/**
- * User: couteau
- * Date: 12/04/11
- */
-public class SolrTestHelper {
-
- static private Log log = LogFactory.getLog(SolrTestHelper.class);
-
- public static void initTests(ApplicationConfig config) {
- // Create tmpdir if not exist
- String tmpdir = System.getProperty("java.io.tmpdir");
- File file = new File(tmpdir);
- if (!file.exists()) {
- file.mkdirs();
- }
-
- // file where to put wikitty datas
- File dataDirectory = new File(tmpdir, "wikitty-data-store");
- if (log.isInfoEnabled()) {
- log.info("Will use data directory : " + dataDirectory);
- }
-
- // set data dir configuration
- config.setOption(WikittyConfigOption.WIKITTY_DATA_DIR.key,
- dataDirectory.getAbsolutePath());
- }
-
- public static void closeTests(WikittyServiceSolr service) {
- service.close();
- }
-}
Deleted: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/TreeTest.java
===================================================================
--- trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/TreeTest.java 2012-01-30 10:55:42 UTC (rev 1388)
+++ trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/TreeTest.java 2012-01-30 11:23:24 UTC (rev 1389)
@@ -1,580 +0,0 @@
-/*
- * #%L
- * Wikitty :: wikitty-solr-impl
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-
-package org.nuiton.wikitty.storage.solr;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.nuiton.wikitty.conform.AbstractTestConformance;
-import org.nuiton.wikitty.entities.ExtensionFactory;
-import org.nuiton.wikitty.entities.Wikitty;
-import org.nuiton.wikitty.entities.WikittyExtension;
-import org.nuiton.wikitty.entities.WikittyImpl;
-import org.nuiton.wikitty.entities.WikittyTreeNode;
-import org.nuiton.wikitty.entities.WikittyTreeNodeHelper;
-import org.nuiton.wikitty.entities.WikittyTreeNodeImpl;
-import org.nuiton.wikitty.entities.WikittyTypes;
-import org.nuiton.wikitty.search.Criteria;
-import org.nuiton.wikitty.search.Search;
-import org.nuiton.wikitty.search.TreeNodeResult;
-import org.nuiton.wikitty.services.WikittyEvent;
-import org.nuiton.wikitty.services.WikittyServiceEnhanced;
-
-/**
- *
- * @author ruchaud, martel
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class TreeTest extends AbstractTestSolr {
-
- static private Log log = LogFactory.getLog(TreeTest.class);
-
- protected WikittyExtension extension;
-
- @Before
- public void onSetUp() throws Exception {
- createBasicWikitty();
- createTestData();
- }
-
- @BeforeClass
- public static void initTests() throws Exception {
-
- SolrTestHelper.initTests(instance);
-
- ws = new WikittyServiceEnhanced(new WikittyServiceSolr(instance));
- }
-
- /**
- * Create a extension, use to store element in tree
- */
- private void createBasicWikitty() {
- extension = ExtensionFactory.create("test", "1")
- .addField("name", WikittyTypes.STRING)
- .extension();
- ws.storeExtension(null, Arrays.asList(extension));
- }
-
- /**
- * Init data with a basic tree
- */
- private void createTestData() {
- // Create tree as following :
- // root
- // |_ node 1
- // | |_ node 11 (2)
- // | | |_ node 111 (1)
- // | |_ node 12
- // | | |_ node 121 (2)
- // | |_ node 13
- // |_ node 2 (1)
-
- createBranch("root/node1/node11/node111");
- createBranch("root/node1/node12/node121");
- createBranch("root/node1/node13");
- createBranch("root/node2");
-
- addNode("node11", "value 1");
- addNode("node11", "value 2");
-
- addNode("node111", "value 3");
-
- addNode("node121", "value 4");
- addNode("node121", "value 5");
-
- addNode("node2", "value 6");
- }
-
- /**
- * Create all node contains in path
- */
- protected void createBranch(String path) {
- String parent = null;
- String[] names = path.split("/");
- for (String name : names) {
-
- Wikitty found = findNode(name);
- if(found == null) {
- found = createNode(name, parent);
- log.debug("[Storing] " + name + " with id " + found.getId());
- ws.store(null, found);
- assertNotNull(findNode(name));
- }
- parent = found.getId();
- }
- }
-
- /**
- * Attach value in node
- */
- protected void addNode(String nodeName, String value) {
- Wikitty leaf = new WikittyImpl();
- leaf.addExtension(extension);
- leaf.setField("test", "name", value);
-
- log.debug("[Storing] " + value + " with id " + leaf.getId());
- ws.store(null, leaf);
-
- Wikitty node = findNode(nodeName);
- assertNotNull(node);
- WikittyTreeNodeHelper.addAttachment(node, leaf.getId());
- ws.store(null, node);
- }
-
- /**
- * Find node by name
- */
- protected Wikitty findNode(String nodeName) {
- Criteria criteria = Search.query().eq(
- WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, nodeName).criteria();
- Wikitty wikitty = getProxy().findByCriteria(criteria);
- return wikitty;
- }
-
- /**
- * Find value by name
- */
- protected Wikitty findValue(String value) {
- Criteria criteria = Search.query().eq("test.name", value).criteria();
- Wikitty wikitty = getProxy().findByCriteria(criteria);
- return wikitty;
- }
-
- static private class CollectAttachmentVisitor implements TreeNodeResult.Visitor<WikittyTreeNode> {
-
- protected Set attachment = new HashSet();
-
- public Set getAttachment() {
- return attachment;
- }
-
- @Override
- public boolean visitEnter(TreeNodeResult<WikittyTreeNode> node) {
- Collection att = node.getObject().getAttachment();
- if (att != null) {
- attachment.addAll(att);
- }
- return true;
- }
-
- @Override
- public boolean visitLeave(TreeNodeResult<WikittyTreeNode> node) {
- return true;
- }
- }
-
- /**
- * Count all element in sub tree, with element in node
- */
- protected int sum(Wikitty node) {
- // Sum attachment object in node
- String nodeId = node.getId();
- TreeNodeResult<WikittyTreeNode> tree = getProxy().findTreeNode(
- WikittyTreeNode.class, nodeId, -1, true, null);
- CollectAttachmentVisitor visitor = new CollectAttachmentVisitor();
- tree.acceptVisitor(visitor);
-
- int result=visitor.getAttachment().size();
- return result;
- }
-// int sum = 0;
-//
-// // Sum value in node
-// Set<String> values = WikittyTreeNodeHelper.getAttachment(node);
-// if(values != null) {
-// sum = values.size();
-// }
-//
-// // Sum children node in node
-// String nodeId = node.getId();
-// TreeNodeResult<WikittyTreeNode> children = getProxy().findTreeNode(
-// nodeId, 1, true, null);
-//
-// /*
-// for (Integer count : children.values()) {
-// sum += count;
-// }
-// */
-//
-// for (TreeNodeResult<WikittyTreeNode> e : children.getChildren()) {
-// log.debug("*treeNode = " + e.getObject().getName() + " "
-// + e.getAttCount() + " -> " + e.getObject().getAttachment());
-// }
-//
-// for (TreeNodeResult<WikittyTreeNode> treeNodeResult : children) {
-// WikittyTreeNode treeNode = treeNodeResult.getObject();
-// Set<String> treeNodeChildren = treeNode.getAttachment();
-// log.debug("+treeNode = " + treeNode.getName() + " " +
-// (treeNodeChildren==null?0:treeNodeChildren.size()) +
-// " -> " + treeNodeChildren);
-//// if (treeNodeChildren == null) {
-//// sum += 0;
-//// } else {
-//// sum += treeNodeChildren.size();
-//// }
-// sum += sum(((WikittyTreeNodeImpl)treeNode).getWikitty());
-// }
-//
-// return sum;
-// }
-
- /**
- * Create a Wikitty WikittyTreeNode
- *
- * @param name
- * name of the node
- * @param parentId
- * id of the parent
- * @return
- * the wikitty object corresponding to the WikittyTreeNode
- */
- protected Wikitty createNode(String name, String parentId) {
- // on force l'id pour simplifier le debuggage
- WikittyImpl w = new WikittyImpl("id" + name);
- WikittyTreeNodeImpl node = new WikittyTreeNodeImpl(w);
- node.setName(name);
- node.setParent(parentId);
- Wikitty nodeWikitty = node.getWikitty();
- return nodeWikitty;
- }
-
- @Test
- public void testRestoreTree() throws Exception {
- Wikitty root = findNode("root");
- String rootId = root.getId();
-
- TreeNodeResult<WikittyTreeNode> tree =
- getProxy().findTreeNode(WikittyTreeNode.class, rootId, -1, false, null);
- assertNotNull(tree);
- }
-
- @Test
- public void testHierarchicalFacet() throws Exception {
- Wikitty root = findNode("root");
- int sum = sum(root);
- assertEquals(6, sum);
-
- Wikitty node1 = findNode("node1");
- sum = sum(node1);
- assertEquals(5, sum);
-
- Wikitty node11 = findNode("node11");
- sum = sum(node11);
- assertEquals(3, sum);
- }
-
- @Test
- public void testRestoreChildren() throws Exception {
- Wikitty node1 = findNode("node1");
- String node1Id = node1.getId();
-
- TreeNodeResult<WikittyTreeNode> children = getProxy().findTreeNode(
- WikittyTreeNode.class, node1Id, 1, false, null);
- assertEquals(3, children.getChildCount());
- }
-
- @Test
- public void testFilterRestoreChildren() {
- Map<String, Integer> result = new HashMap<String, Integer>();
- result.put("node11", 1);
- result.put("node13", 0);
- result.put("node12", 0);
-
- Wikitty node1 = findNode("node1");
- String node1Id = node1.getId();
-
- Criteria filter = Search.query().eq("test.name", "value 3").criteria();
- TreeNodeResult<WikittyTreeNode> children = getProxy().findTreeNode(
- WikittyTreeNode.class, node1Id, 1, true, filter);
- System.out.println(children);
- assertEquals(3, children.getChildCount());
- for (TreeNodeResult<WikittyTreeNode> e : children.getChildren()) {
- assertEquals(result.get(e.getObject().getName()), Integer.valueOf(e.getAttCount()));
- }
- }
-
- @Test
- public void testRestoreNode() throws Exception {
- Wikitty node11 = findNode("node11");
- String node11Id = node11.getId();
-
- TreeNodeResult<WikittyTreeNode> count = getProxy().findTreeNode(
- WikittyTreeNode.class, node11Id, 0, true, null);
- assertEquals(3, count.getAttCount());
- }
-
- @Test
- public void testFilterRestoreNode() throws Exception {
- Wikitty node11 = findNode("node11");
- String node11Id = node11.getId();
-
- Criteria filter = Search.query().eq("test.name", "value 3").criteria();
- TreeNodeResult<WikittyTreeNode> count = getProxy().findTreeNode(
- WikittyTreeNode.class, node11Id, 0, true, filter);
- System.out.println(count);
- assertEquals(1, count.getAttCount());
- }
-
- @Test
- public void testNewNode() throws Exception {
- // Check that node 2 it has any child
- Wikitty node2 = findNode("node2");
- String node2Id = node2.getId();
- TreeNodeResult<WikittyTreeNode> children = getProxy().findTreeNode(
- WikittyTreeNode.class, node2Id, 1, true, null);
- assertEquals(0, children.getChildCount());
-
- // Create a new node, child of node 2
- Wikitty nodeWikitty = createNode("node21", node2Id);
- ws.store(null, nodeWikitty);
-
- // Retrieve it to check
- Wikitty found = findNode("node21");
- assertNotNull(found);
-
- // Check that it was great added as node2 child
- children = getProxy().findTreeNode(
- WikittyTreeNode.class, node2Id, 1, false, null);
- assertEquals(1, children.getChildCount());
- }
-
- @Test
- public void testAddValueInNode() throws Exception {
- // Get the initial number of values for Root node
- Wikitty root = findNode("root");
- int childInit = sum(root);
-
- // Create a leaf
- Wikitty leaf = AbstractTestConformance.createWikitty("name=totoTheLeaf", "test", extension);
- ws.store(null, leaf);
-
- // Add it in the node2 (now: two values in it)
- Wikitty node = findNode("node2");
- assertNotNull(node);
- WikittyTreeNodeHelper.addAttachment(node, leaf.getId());
- ws.store(null, node);
-
- // now, there is one more value for the root node
- int newSum = sum(root);
- assertEquals(childInit + 1, newSum);
- }
-
- @Test
- public void testDeleteNode() throws Exception {
- // Get the initial number of values for Root node
- Wikitty root = findNode("root");
- int rootChildInit = sum(root);
-
- // Remove the node 121
- Wikitty node121 = findNode("node121");
- int node121Init = sum(node121);
- String node121Id = node121.getId();
- ws.delete(null, node121Id);
-
- // node12 must have any child
- Wikitty node12 = findNode("node12");
- int sum = sum(node12);
- assertEquals(0, sum);
-
- // check that root node has weel one less children value
- int newRootChidlren = sum(root);
- assertEquals(rootChildInit - node121Init, newRootChidlren);
-
- // Remove the node 1 and node 11 simultaneously
- Wikitty node1 = findNode("node1");
- int node1Init = sum(node1);
- String node1Id = node1.getId();
-
- Wikitty node11 = findNode("node11");
- String node11Id = node11.getId();
- ws.delete(null, Arrays.asList(node1Id, node11Id));
-
- // check that root node has weel one less children value
- newRootChidlren = sum(root);
- assertEquals(rootChildInit - node121Init - node1Init, newRootChidlren);
- }
-
- @Test
- public void testDeleteChild() throws Exception {
- // Get the initial number of values for Root node
- Wikitty root = findNode("root");
- int childInit = sum(root);
-
- // Remove a value on node11
- Wikitty node = findNode("node11");
-
- List<String> leafs = new ArrayList<String>(WikittyTreeNodeHelper.getAttachment(node));
- node.removeFromField(WikittyTreeNode.EXT_WIKITTYTREENODE, WikittyTreeNode.FIELD_WIKITTYTREENODE_ATTACHMENT, leafs.get(0));
-
- leafs = new ArrayList<String>(WikittyTreeNodeHelper.getAttachment(node));
- log.info("leafs after remove = " + leafs);
-
- ws.store(null, node);
-
- node = ws.restore(null, node.getId());
- leafs = new ArrayList<String>(WikittyTreeNodeHelper.getAttachment(node));
- log.info("leafs after restore = " + leafs);
-
- // now, there is one more value for the root node
- int newSum = sum(root);
- assertEquals(childInit - 1, newSum);
- }
-
- /** regression test, for unknown reason the child may not be removed in the index */
- @Test
- public void testSimpleDeleteChild() throws Exception {
-
- WikittyTreeNodeImpl parent = new WikittyTreeNodeImpl();
- ws.store(null, parent.getWikitty());
-
- WikittyTreeNodeImpl child = new WikittyTreeNodeImpl();
- child.setParent(parent.getWikittyId());
- WikittyEvent event = ws.store(null, child.getWikitty());
- event.update(child.getWikitty());
-
- TreeNodeResult<WikittyTreeNode> children = getProxy().findTreeNode(
- WikittyTreeNode.class, parent.getWikittyId(), 1, true, null);
-
- assertEquals(1, children.getChildCount());
- assertEquals(0, children.getChild(child).getAttCount());
-
- child.setParent(null);
-
- ws.store(null, child.getWikitty());
-
- children = getProxy().findTreeNode(
- WikittyTreeNode.class, parent.getWikittyId(), 1, true, null);
-
- assertEquals(0, children.getChildCount());
- }
-
- @Test
- public void testDeleteValue() throws Exception {
- // Get the initial number of values for Root node
- Wikitty root = findNode("root");
- int childInit = sum(root);
-
- // Remove a value
- Wikitty value4 = findValue("value 4");
- String value4Id = value4.getId();
- ws.delete(null, value4Id);
-
- // now, there is one more value for the root node
- int newSum = sum(root);
- assertEquals(childInit - 1, newSum);
- }
-
- @Test
- public void testMoveNode() throws Exception {
- // Get the initial number of values for node 1
- Wikitty node1 = findNode("node1");
- int childSum1 = sum(node1);
-
- // Get the initial number of values for node 121
- Wikitty node121 = findNode("node121");
- int childSum121 = sum(node121);
-
- // Get the initial number of values for node 2
- Wikitty node2 = findNode("node2");
- int childSum2 = sum(node2);
-
- // Move node 1 in mode 2
- WikittyTreeNodeHelper.setParent(node121, node2.getId());
- ws.store(null, node121);
-
- // now, there is less value node 121 for the node 1
- int newSum1 = sum(node1);
- assertEquals(childSum1 - childSum121, newSum1);
-
- // now, there is more value node 121 for the node 2
- int newSum2 = sum(node2);
- assertEquals(childSum2 + childSum121, newSum2);
- }
-
- @Test
- public void testValueInMultipleNode() throws Exception {
- createBranch("node3/node31");
- createBranch("node3/node32");
-
- Wikitty value = AbstractTestConformance.createWikitty("name=value", "test", extension);
- ws.store(null, value);
- String valueId = value.getId();
-
- Wikitty node31 = findNode("node31");
- WikittyTreeNodeHelper.addAttachment(node31, valueId);
- ws.store(null, node31);
-
- Wikitty node32 = findNode("node32");
- WikittyTreeNodeHelper.addAttachment(node32, valueId);
- ws.store(null, node32);
-
- Wikitty node3 = findNode("node3");
- int sum = sum(node3);
- assertEquals(1, sum);
-
- TreeNodeResult<WikittyTreeNode> count = getProxy().findTreeNode(
- WikittyTreeNode.class, node3.getId(), 0, true, null);
- assertEquals(1, count.getAttCount());
-
- sum = sum(node31);
- assertEquals(1, sum);
-
- sum = sum(node32);
- assertEquals(1, sum);
- }
-
- // verifier que l'indexation de l'arbre fonctionne bien et la reindexation aussi
- @Test
- public void testReindexation() throws Exception {
-// FIXME poussin 20101222 a faire
- // creer deux arbres (3 noeud)
- // mettre 3 attachments par noeud (les memes) dans les 2 arbres
-
- // enlever un attachment par noeud et supprime le noeud intermediaire
- // en meme temps et store les arbres
-
- // verifier que tout est bien reindexe et que le dernier noeud est bien
- // devenu un noeud root
- }
-
-}
1
0
r1388 - trunk/wikitty-api/src/test/java/org/nuiton/wikitty
by echatellier@users.nuiton.org 30 Jan '12
by echatellier@users.nuiton.org 30 Jan '12
30 Jan '12
Author: echatellier
Date: 2012-01-30 11:55:42 +0100 (Mon, 30 Jan 2012)
New Revision: 1388
Url: http://nuiton.org/repositories/revision/wikitty/1388
Log:
Add count attachement test with filter
Modified:
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java 2012-01-30 10:35:14 UTC (rev 1387)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java 2012-01-30 10:55:42 UTC (rev 1388)
@@ -2096,43 +2096,6 @@
}
/**
- * Test le nombre d'attachment (fichiers attachés) au noeud des arbres.
- */
- @Test
- public void testCountAttachment() {
-
- WikittyQuery query = new WikittyQueryMaker().and()
- .exteq(WikittyTreeNodeImpl.EXT_WIKITTYTREENODE)
- .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Catalog").end();
- CatalogNode catalogNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
- query = new WikittyQueryMaker().and()
- .exteq(WikittyTreeNodeImpl.EXT_WIKITTYTREENODE)
- .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Books").end();
- CatalogNode bookNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
- query = new WikittyQueryMaker().and()
- .exteq(WikittyTreeNodeImpl.EXT_WIKITTYTREENODE)
- .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Bande dessinées").end();
- CatalogNode bdNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
- query = new WikittyQueryMaker().and()
- .exteq(WikittyTreeNodeImpl.EXT_WIKITTYTREENODE)
- .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Nouvelles").end();
- CatalogNode newsNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
-
- WikittyQueryResultTreeNode<String> treeNodeResult = wikittyClient.findAllIdTreeNode(catalogNode.getWikittyId(), 0, true, null);
- int val = treeNodeResult.getAttCount();
- Assert.assertEquals(9, val);
-
- WikittyQueryResultTreeNode<String> children = wikittyClient.findAllIdTreeNode(bookNode.getWikittyId(), 1, true, null);
- if (log.isDebugEnabled()) {
- log.debug("Children : " + children);
- }
-
- Assert.assertEquals(3, children.getChildCount());
- Assert.assertEquals(2, children.getChild(bdNode.getWikittyId()).getAttCount());
- Assert.assertEquals(1, children.getChild(newsNode.getWikittyId()).getAttCount());
- }
-
- /**
* Test que lors de la reindexation les noeuds indexés le sont
* correctement si leur attachement ne sont pas encore
* présent dans l'index.
@@ -2274,4 +2237,65 @@
Assert.assertEquals(0, wikittyClient.findAllByQuery(query).getTotalResult());
Assert.assertEquals(0, wikittyClient.findAllByQuery(WikittyLabel.class, query).getTotalResult());
}
+
+ /**
+ * Test le nombre d'attachment (fichiers attachés) au noeud des arbres.
+ */
+ @Test
+ public void testSearchEngineCountAttachment() {
+
+ WikittyQuery query = new WikittyQueryMaker().and()
+ .exteq(WikittyTreeNodeImpl.EXT_WIKITTYTREENODE)
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Catalog").end();
+ CatalogNode catalogNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
+ query = new WikittyQueryMaker().and()
+ .exteq(WikittyTreeNodeImpl.EXT_WIKITTYTREENODE)
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Books").end();
+ CatalogNode bookNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
+ query = new WikittyQueryMaker().and()
+ .exteq(WikittyTreeNodeImpl.EXT_WIKITTYTREENODE)
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Bande dessinées").end();
+ CatalogNode bdNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
+ query = new WikittyQueryMaker().and()
+ .exteq(WikittyTreeNodeImpl.EXT_WIKITTYTREENODE)
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Nouvelles").end();
+ CatalogNode newsNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
+
+ WikittyQueryResultTreeNode<String> treeNodeResult =
+ wikittyClient.findAllIdTreeNode(catalogNode.getWikittyId(), 0, true, null);
+ int val = treeNodeResult.getAttCount();
+ Assert.assertEquals(9, val);
+
+ WikittyQueryResultTreeNode<String> children =
+ wikittyClient.findAllIdTreeNode(bookNode.getWikittyId(), 1, true, null);
+ if (log.isDebugEnabled()) {
+ log.debug("Children : " + children);
+ }
+
+ Assert.assertEquals(3, children.getChildCount());
+ Assert.assertEquals(2, children.getChild(bdNode.getWikittyId()).getAttCount());
+ Assert.assertEquals(1, children.getChild(newsNode.getWikittyId()).getAttCount());
+ }
+
+ /**
+ * Test le nombre d'attachment (fichiers attachés) au noeud des arbres
+ * avec un filtre cette fois.
+ */
+ @Test
+ public void testSearchEngineCountAttachmentFiltered() {
+
+ WikittyQuery query = new WikittyQueryMaker().and()
+ .exteq(WikittyTreeNodeImpl.EXT_WIKITTYTREENODE)
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Catalog").end();
+ CatalogNode catalogNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
+
+ // on filtre par category (society)
+ WikittyQuery filter = WikittyQueryParser.parse("Product.category={SELECT id WHERE Category.code = society}");
+
+ WikittyQueryResultTreeNode<String> treeNodeResult = wikittyClient.findAllIdTreeNode(catalogNode.getWikittyId(),
+ 0, true, filter);
+ int val = treeNodeResult.getAttCount();
+ // parmis les 9 du test precedent, seulement 1 dans la category society
+ Assert.assertEquals(1, val);
+ }
}
1
0
r1387 - trunk/wikitty-api/src/test/java/org/nuiton/wikitty
by echatellier@users.nuiton.org 30 Jan '12
by echatellier@users.nuiton.org 30 Jan '12
30 Jan '12
Author: echatellier
Date: 2012-01-30 11:35:14 +0100 (Mon, 30 Jan 2012)
New Revision: 1387
Url: http://nuiton.org/repositories/revision/wikitty/1387
Log:
Use test tree node for attachement count
Modified:
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java 2012-01-30 10:00:29 UTC (rev 1386)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java 2012-01-30 10:35:14 UTC (rev 1387)
@@ -70,6 +70,7 @@
import org.nuiton.wikitty.query.WikittyQueryResultTreeNode;
import org.nuiton.wikitty.query.conditions.Aggregate;
import org.nuiton.wikitty.services.WikittyEvent;
+import org.nuiton.wikitty.test.CatalogNode;
import org.nuiton.wikitty.test.Category;
import org.nuiton.wikitty.test.Product;
import org.nuiton.wikitty.test.ProductImpl;
@@ -1085,7 +1086,6 @@
importBooks(); // add 13 livres
WikittyQuery query = WikittyQueryParser.parse("Product.colors={white, black}");
WikittyQueryResult<Product> results = wikittyClient.findAllByQuery(Product.class, query);
- // FIXME mais la doc de [] correspond a contains one
Assert.assertEquals(9, results.getTotalResult());
Assert.assertEquals(9, results.getAll().size());
}
@@ -2100,95 +2100,36 @@
*/
@Test
public void testCountAttachment() {
- List<Wikitty> toStore = new ArrayList<Wikitty>();
- WikittyImpl w1 = new WikittyImpl("at1");
- WikittyImpl w2 = new WikittyImpl("at2");
- WikittyImpl w3 = new WikittyImpl("at3");
+ WikittyQuery query = new WikittyQueryMaker().and()
+ .exteq(WikittyTreeNodeImpl.EXT_WIKITTYTREENODE)
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Catalog").end();
+ CatalogNode catalogNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
+ query = new WikittyQueryMaker().and()
+ .exteq(WikittyTreeNodeImpl.EXT_WIKITTYTREENODE)
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Books").end();
+ CatalogNode bookNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
+ query = new WikittyQueryMaker().and()
+ .exteq(WikittyTreeNodeImpl.EXT_WIKITTYTREENODE)
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Bande dessinées").end();
+ CatalogNode bdNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
+ query = new WikittyQueryMaker().and()
+ .exteq(WikittyTreeNodeImpl.EXT_WIKITTYTREENODE)
+ .eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "Nouvelles").end();
+ CatalogNode newsNode = wikittyClient.findAllByQuery(CatalogNode.class, query).peek();
- WikittyImpl root = new WikittyImpl("the-root");
- WikittyTreeNodeImpl n = new WikittyTreeNodeImpl(root);
- n.addAttachment(w1.getId());
- n.addAttachment(w2.getId());
- n.addAttachment(w3.getId());
-
- toStore.add(w1);
- toStore.add(w2);
- toStore.add(w3);
- toStore.add(root);
-
- wikittyClient.storeWikitty(toStore);
- toStore.clear();
-
- WikittyImpl w11 = new WikittyImpl("at11");
- WikittyImpl w12 = new WikittyImpl("at12");
- WikittyImpl w13 = new WikittyImpl("at13");
-
- WikittyImpl node1 = new WikittyImpl("node1");
- n = new WikittyTreeNodeImpl(node1);
- n.setParent(root.getId());
- n.addAttachment(w11.getId());
- n.addAttachment(w12.getId());
- n.addAttachment(w13.getId());
-
- toStore.add(w11);
- toStore.add(w12);
- toStore.add(w13);
- toStore.add(node1);
-
- wikittyClient.storeWikitty(toStore);
- toStore.clear();
-
- WikittyImpl w21 = new WikittyImpl("at21");
- WikittyImpl w22 = new WikittyImpl("at22");
- WikittyImpl w23 = new WikittyImpl("at23");
- WikittyImpl w24 = new WikittyImpl("at24");
-
- WikittyImpl node2 = new WikittyImpl("node2");
- n = new WikittyTreeNodeImpl(node2);
- n.setParent(root.getId());
- n.addAttachment(w21.getId());
- n.addAttachment(w22.getId());
- n.addAttachment(w23.getId());
- n.addAttachment(w24.getId());
-
- toStore.add(w21);
- toStore.add(w22);
- toStore.add(w23);
- toStore.add(w24);
- toStore.add(node2);
-
- wikittyClient.storeWikitty(toStore);
- toStore.clear();
-
- WikittyImpl w111 = new WikittyImpl("at111");
- WikittyImpl w112 = new WikittyImpl("at112");
-
- WikittyImpl node11 = new WikittyImpl("node11");
- n = new WikittyTreeNodeImpl(node11);
- n.setParent(node1.getId());
- n.addAttachment(w111.getId());
- n.addAttachment(w112.getId());
-
- toStore.add(w111);
- toStore.add(w112);
- toStore.add(node11);
-
- wikittyClient.storeWikitty(toStore);
- toStore.clear();
-
- WikittyQueryResultTreeNode<String> treeNodeResult = wikittyClient.findAllIdTreeNode(root.getId(), 0, true, null);
+ WikittyQueryResultTreeNode<String> treeNodeResult = wikittyClient.findAllIdTreeNode(catalogNode.getWikittyId(), 0, true, null);
int val = treeNodeResult.getAttCount();
- Assert.assertEquals(12, val);
+ Assert.assertEquals(9, val);
- WikittyQueryResultTreeNode<String> children = wikittyClient.findAllIdTreeNode(root.getId(), 1, true, null);
+ WikittyQueryResultTreeNode<String> children = wikittyClient.findAllIdTreeNode(bookNode.getWikittyId(), 1, true, null);
if (log.isDebugEnabled()) {
log.debug("Children : " + children);
}
- Assert.assertEquals(2, children.getChildCount());
- Assert.assertEquals(5, children.getChild(node1.getId()).getAttCount());
- Assert.assertEquals(4, children.getChild(node2.getId()).getAttCount());
+ Assert.assertEquals(3, children.getChildCount());
+ Assert.assertEquals(2, children.getChild(bdNode.getWikittyId()).getAttCount());
+ Assert.assertEquals(1, children.getChild(newsNode.getWikittyId()).getAttCount());
}
/**
1
0