diff options
author | Rama-Huawei <rama.subba.reddy.s@huawei.com> | 2019-04-22 14:41:44 +0530 |
---|---|---|
committer | Rama-Huawei <rama.subba.reddy.s@huawei.com> | 2019-04-22 14:41:44 +0530 |
commit | 020e6b1cbd20daab7fe6fbc13711a1c2a2dad2ee (patch) | |
tree | a90e2d445343700c1998e426abeba336e673c7f9 | |
parent | 82b82f141a7c2b00d5828480eae4b6f30519e920 (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-x | components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/service/CouchbaseServiceTest.java | 140 |
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 |