You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ka...@apache.org on 2018/02/09 08:03:09 UTC
kylin git commit: KYLIN-2672 Add UT
Repository: kylin
Updated Branches:
refs/heads/KYLIN-2672 b8105db9e -> 0b3938517
KYLIN-2672 Add UT
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/0b393851
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/0b393851
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/0b393851
Branch: refs/heads/KYLIN-2672
Commit: 0b393851718a17d3cae470e67e628d69cabf4ad8
Parents: b8105db
Author: kangkaisen <ka...@meituan.com>
Authored: Fri Feb 9 15:53:02 2018 +0800
Committer: kangkaisen <ka...@meituan.com>
Committed: Fri Feb 9 15:53:56 2018 +0800
----------------------------------------------------------------------
.../rest/controller/CacheControllerTest.java | 54 +++++++++++++++++++-
1 file changed, 53 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/0b393851/server/src/test/java/org/apache/kylin/rest/controller/CacheControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/CacheControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/CacheControllerTest.java
index c2e21cc..3466a36 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/CacheControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/CacheControllerTest.java
@@ -19,7 +19,17 @@
package org.apache.kylin.rest.controller;
import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.persistence.JsonSerializer;
+import org.apache.kylin.common.persistence.Serializer;
+import org.apache.kylin.cube.CubeDescManager;
+import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.metadata.model.DataModelDesc;
+import org.apache.kylin.metadata.model.TableRef;
+import org.apache.kylin.rest.request.CubeMigrationRequest;
import org.apache.kylin.rest.service.CacheService;
import org.apache.kylin.rest.service.ServiceTestBase;
import org.junit.Before;
@@ -27,6 +37,9 @@ import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+
/**
* @author shaoshi
*/
@@ -48,7 +61,46 @@ public class CacheControllerTest extends ServiceTestBase {
@Test
public void testBasics() throws IOException {
-
cacheController.wipeCache("cube_desc", "drop", "test_kylin_cube_with_slr_desc");
}
+
+ @Test
+ public void testClearCacheForCubeMigration() throws IOException {
+ KylinConfig config = KylinConfig.getInstanceFromEnv();
+ String CUBENAME = "test_kylin_cube_without_slr_desc";
+
+ CubeDescManager cubeDescManager = CubeDescManager.getInstance(config);
+ CubeDesc cubeDesc = cubeDescManager.getCubeDesc(CUBENAME);
+ DataModelDesc modelDesc = cubeDesc.getModel();
+ Map<String, String> tableToProjects = new HashMap<>();
+ for (TableRef tableRef : modelDesc.getAllTables()) {
+ tableToProjects.put(tableRef.getTableIdentity(), tableRef.getTableDesc().getProject());
+ }
+
+ String uuid = cubeDesc.getUuid();
+ String signature = cubeDesc.getSignature();
+
+ assertEquals(cubeDesc.getRetentionRange(), 0);
+
+ //update cubeDesc
+ cubeDesc.setRetentionRange(2018);
+ cubeDesc.updateRandomUuid();
+
+ //directly update metadata in store to simulate cube migration
+ Serializer<CubeDesc> cubeDescSerializer = new JsonSerializer<CubeDesc>(CubeDesc.class);
+ getStore().putResource(cubeDesc.getResourcePath(), cubeDesc, cubeDescSerializer);
+
+ CubeMigrationRequest request = new CubeMigrationRequest();
+ request.setCube(cubeDesc.getName());
+ request.setModel(modelDesc.getName());
+ request.setProject(modelDesc.getProject());
+ request.setTableToProjects(tableToProjects);
+
+ cacheController.clearCacheForCubeMigration(request);
+
+ assertEquals(2018, cubeDescManager.getCubeDesc(CUBENAME).getRetentionRange());
+ assertEquals(signature, cubeDescManager.getCubeDesc(CUBENAME).getSignature());
+ assertNotEquals(uuid, cubeDescManager.getCubeDesc(CUBENAME).getUuid());
+ }
+
}