summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRama-Huawei <rama.subba.reddy.s@huawei.com>2019-04-22 14:41:44 +0530
committerRama-Huawei <rama.subba.reddy.s@huawei.com>2019-04-22 14:41:44 +0530
commit020e6b1cbd20daab7fe6fbc13711a1c2a2dad2ee (patch)
treea90e2d445343700c1998e426abeba336e673c7f9
parent82b82f141a7c2b00d5828480eae4b6f30519e920 (diff)
Unit test code for datalake seed code
Improved Couchbase service code coverage Issue-ID: DCAEGEN2-1309 Change-Id: I1bacbcb3e5c4919a36b02aac68e069c86e04bd02 Signed-off-by: Rama-Huawei <rama.subba.reddy.s@huawei.com>
-rwxr-xr-xcomponents/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/service/CouchbaseServiceTest.java140
1 files changed, 140 insertions, 0 deletions
diff --git a/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/service/CouchbaseServiceTest.java b/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/service/CouchbaseServiceTest.java
new file mode 100755
index 00000000..9e40a2b1
--- /dev/null
+++ b/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/service/CouchbaseServiceTest.java
@@ -0,0 +1,140 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : DATALAKE
+ * ================================================================================
+ * Copyright (C) 2018-2019 Huawei. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.datalake.feeder.service;
+
+import com.couchbase.client.java.Cluster;
+import com.couchbase.client.java.CouchbaseCluster;
+import com.couchbase.client.java.env.DefaultCouchbaseEnvironment;
+import com.couchbase.mock.Bucket;
+import com.couchbase.mock.BucketConfiguration;
+import com.couchbase.mock.CouchbaseMock;
+import com.couchbase.mock.client.MockClient;
+import org.jetbrains.annotations.NotNull;
+import org.json.JSONObject;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.datalake.feeder.domain.Topic;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RunWith(MockitoJUnitRunner.class)
+public class CouchbaseServiceTest {
+ protected final BucketConfiguration bucketConfiguration = new BucketConfiguration();
+ protected MockClient mockClient;
+ protected CouchbaseMock couchbaseMock;
+ protected Cluster cluster;
+ protected com.couchbase.client.java.Bucket bucket;
+ protected int carrierPort;
+ protected int httpPort;
+
+ protected void getPortInfo(String bucket) throws Exception {
+ httpPort = couchbaseMock.getHttpPort();
+ carrierPort = couchbaseMock.getCarrierPort(bucket);
+ }
+
+ protected void createMock(@NotNull String name, @NotNull String password) throws Exception {
+ bucketConfiguration.numNodes = 1;
+ bucketConfiguration.numReplicas = 1;
+ bucketConfiguration.numVBuckets = 1024;
+ bucketConfiguration.name = name;
+ bucketConfiguration.type = Bucket.BucketType.COUCHBASE;
+ bucketConfiguration.password = password;
+ ArrayList<BucketConfiguration> configList = new ArrayList<BucketConfiguration>();
+ configList.add(bucketConfiguration);
+ couchbaseMock = new CouchbaseMock(0, configList);
+ couchbaseMock.start();
+ couchbaseMock.waitForStartup();
+ }
+
+ protected void createClient() {
+ cluster = CouchbaseCluster.create(DefaultCouchbaseEnvironment.builder()
+ .bootstrapCarrierDirectPort(carrierPort)
+ .bootstrapHttpDirectPort(httpPort)
+ .build(), "couchbase://127.0.0.1");
+ bucket = cluster.openBucket("default");
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ createMock("default", "");
+ getPortInfo("default");
+ createClient();
+ }
+
+ @After
+ public void tearDown() {
+ if (cluster != null) {
+ cluster.disconnect();
+ }
+ if (couchbaseMock != null) {
+ couchbaseMock.stop();
+ }
+ if (mockClient != null) {
+ mockClient.shutdown();
+ }
+ }
+
+ @Test
+ public void testSaveJsonsWithTopicId() {
+
+ String text = "{ data: { data2 : { value : 'hello'}}}";
+
+ JSONObject json = new JSONObject(text);
+
+ Topic topic = new Topic("test getMessageId");
+ topic.setMessageIdPath("/data/data2/value");
+ List<JSONObject> jsons = new ArrayList<>();
+ json.put("_ts", 1234);
+ jsons.add(json);
+ CouchbaseService couchbaseService = new CouchbaseService();
+ couchbaseService.bucket = bucket;
+ couchbaseService.saveJsons(topic, jsons);
+
+ }
+
+ @Test
+ public void testSaveJsonsWithOutTopicId() {
+
+ String text = "{ data: { data2 : { value : 'hello'}}}";
+
+ JSONObject json = new JSONObject(text);
+
+ Topic topic = new Topic("test getMessageId");
+ List<JSONObject> jsons = new ArrayList<>();
+ json.put("_ts", 1234);
+ jsons.add(json);
+ CouchbaseService couchbaseService = new CouchbaseService();
+ couchbaseService.bucket = bucket;
+ couchbaseService.saveJsons(topic, jsons);
+ }
+
+ @Test
+ public void testCleanupBucket() {
+ CouchbaseService couchbaseService = new CouchbaseService();
+ couchbaseService.bucket = bucket;
+ couchbaseService.cleanUp();
+ }
+
+} \ No newline at end of file