Increase unit test coverage 77/32577/2
authorMichael Hwang <mhwang@research.att.com>
Thu, 22 Feb 2018 02:50:04 +0000 (21:50 -0500)
committerMichael Hwang <mhwang@research.att.com>
Thu, 22 Feb 2018 18:26:45 +0000 (13:26 -0500)
Also updated pom to use 0.1.1 of oparent

Change-Id: I3af9fd23583bf8de34e3412494d1bc4a99fe4630
Issue-ID: DCAEGEN2-260
Signed-off-by: Michael Hwang <mhwang@research.att.com>
pom.xml
test/sch/asdc_client_test.clj
test/sch/core_test.clj
test/sch/handle_test.clj
test/sch/inventory_client_test.clj [new file with mode: 0644]
version.properties

diff --git a/pom.xml b/pom.xml
index 760a2df..e40e352 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -27,13 +27,13 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property.
     <parent>
         <groupId>org.onap.oparent</groupId>
         <artifactId>oparent</artifactId>
-        <version>1.1.0-SNAPSHOT</version>
+        <version>0.1.1</version>
     </parent>
 
 
     <groupId>org.onap.dcaegen2.platform</groupId>
     <artifactId>servicechange-handler</artifactId>
-    <version>1.1.0</version>
+    <version>1.1.1</version>
     <!-- Not sure why clojure-maven-plugin says packaging should be "clojure" -->
     <packaging>jar</packaging>
 
index ab84478..974dd40 100644 (file)
@@ -1,7 +1,7 @@
 ; ============LICENSE_START=======================================================
 ; org.onap.dcae
 ; ================================================================================
-; Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+; Copyright (c) 2017-2018 AT&T Intellectual Property. 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.
 
 (ns sch.asdc-client-test
   (:use (clojure test))
-  (:require [sch.asdc-client :refer [create-asdc-conn]])
+  (:require [sch.asdc-client :as ac])
   )
 
+
 (deftest test-create-asdc-conn
   (let [config-good { :asdcUri "https://asdc-please-work:8443"
                       :user "foo-user"
                       :password "foo-password"
                       :consumerId "foo-id"
                       :activateServerTLSAuth true }
-        actual (create-asdc-conn { :asdcDistributionClient config-good })
+        actual (ac/create-asdc-conn { :asdcDistributionClient config-good })
         [uri user password consumer-id insecure?] actual
         ]
     (is (= (str uri) (:asdcUri config-good)))
     (is (= consumer-id (:consumerId config-good)))
     (is (= insecure? (not (:activateServerTLSAuth config-good))))
     ))
+
+
+(deftest test-get-consumer-id
+  (let [consumer-id "SOME-CONSUMER-ID"
+        asdc-conn [nil nil nil consumer-id nil]]
+    (is (= consumer-id (ac/get-consumer-id asdc-conn)))
+    ))
+
+
+(deftest test-construct-service-path
+  (let [service-uuid "abc123"]
+    (is (= "/sdc/v1/catalog/services/abc123/metadata"
+           (ac/construct-service-path service-uuid)))
+    ))
index c0682f4..e441343 100644 (file)
@@ -1,7 +1,7 @@
 ; ============LICENSE_START=======================================================
 ; org.onap.dcae
 ; ================================================================================
-; Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+; Copyright (c) 2017-2018 AT&T Intellectual Property. 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.
 
 (ns sch.core-test
   (:use (clojure test))
-  (:require [sch.core :refer [create-distribution-client-config]])
+  (:require [sch.core :refer [create-distribution-client-config deploy-artifacts-ex!]])
+  (:import (org.openecomp.sdc.utils DistributionStatusEnum))
   )
 
+
+(deftest test-deploy-artifacts-ex
+  (letfn [(deploy-artifacts-echo [to-post posted to-delete deleted inventory-uri
+                             service-metadata requests]
+            to-post posted to-delete deleted)
+          (send-dist-status-only-ok [artifact status]
+            (if (not= (. DistributionStatusEnum ALREADY_DEPLOYED) status)
+              (throw (Exception. "Distribution status should be ALREADY DEPLOYED"))
+              ))]
+    (let [service-metadata [{:resources [{:resourceInvariantUUID "123"
+                                          :artifacts [:artifactName "type-foo"]
+                                          }]}]
+          requests [{:asdcResourceId "123" :typeName "type-foo"}]
+          deploy-artifacts (partial deploy-artifacts-echo requests [] [] [])
+          nada (intern 'sch.handle 'deploy-artifacts! deploy-artifacts)
+          ]
+      (is (= nil (deploy-artifacts-ex! "http://inventory" service-metadata requests send-dist-status-only-ok)))
+      )))
+
+
 (deftest test-create-distribution-client-config
   (let [config { :asdcDistributionClient { :environmentName "ONAP-AMDOCS"
                                            :asdcAddress "10.0.3.1:8443"
index 9cbf9f7..3ff0618 100644 (file)
@@ -1,7 +1,7 @@
 ; ============LICENSE_START=======================================================
 ; org.onap.dcae
 ; ================================================================================
-; Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+; Copyright (c) 2017-2018 AT&T Intellectual Property. 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.
             [sch.handle :refer :all])
   )
 
+
+(deftest test-should-update
+  (is (= false (should-update? {:typeVersion 2} {:typeVersion 3})))
+  (is (= true (should-update? {:typeVersion 3} {:typeVersion 2})))
+  )
+
+
+(deftest test-should-insert
+  (is (= true (should-insert? {} nil)))
+  (is (= true (should-insert? {} {})))
+  (is (= false (should-insert? {} {:somekey "yo"})))
+  )
+
+
+(deftest test-find-service-types-to-post
+  (letfn [(fake-get-service-types [result inventory-uri query-params]
+            result)]
+    (let [find-service-types-to-post #'sch.handle/find-service-types-to-post!
+          service-type-requests [{:typeName "some-type" :asdcServiceId "abc"
+                                  :asdcResourceId "123" :typeVersion 3}]
+          fake-get-service-types-insert (partial fake-get-service-types {})
+          nada (intern 'sch.inventory-client 'get-service-types! fake-get-service-types-insert)]
+      (is (= service-type-requests (find-service-types-to-post "http://inventory"
+                                                               service-type-requests)))
+      )))
+
+
+(deftest test-post-service-types
+  (letfn [(fake-post-service-type [inventory-uri request]
+            (assoc request :typeId "123"))]
+    (let [service-type-requests [{:typeName "some-type" :asdcServiceId "abc"
+                                  :asdcResourceId "123" :typeVersion 3}]
+          post-service-types #'sch.handle/post-service-types!
+          nada (intern 'sch.inventory-client 'post-service-type! fake-post-service-type)]
+      (is (= {:typeId "123" :typeName "some-type" :asdcServiceId "abc"
+              :asdcResourceId "123" :typeVersion 3}
+             (first (post-service-types "http://inventory" service-type-requests))))
+      )))
+
+
+(deftest test-find-service-types-to-delete
+  (letfn [(fake-get-service-types [result inventory-uri query-params]
+            result)]
+    (let [find-service-types-to-delete #'sch.handle/find-service-types-to-delete!
+          service-type-requests [{:typeName "some-type" :asdcServiceId "abc"
+                                  :asdcResourceId "123" :typeVersion 3}]
+          fake-get-service-types-delete (partial fake-get-service-types
+                                                 [{ :typeName "some-type"
+                                                   :asdcServiceId "abc"
+                                                   :asdcResourceId "456"
+                                                   :typeVersion 3 }])
+          nada (intern 'sch.inventory-client 'get-service-types!
+                       fake-get-service-types-delete)]
+      (is (= 1 (count (find-service-types-to-delete "http://inventory" "abc"
+                                                    service-type-requests))))
+      )))
+
+
+(deftest test-delete-service-types
+  (letfn [(fake-delete-service-type [inventory-uri type-id]
+            type-id)]
+    (let [service-type-requests [{:typeId "def" :typeName "some-type"
+                                  :asdcServiceId "abc" :asdcResourceId "123" :typeVersion 3}]
+          delete-service-types #'sch.handle/delete-service-types!
+          nada (intern 'sch.inventory-client 'delete-service-type! fake-delete-service-type)]
+      (is (= "def" (first (delete-service-types "http://inventory" service-type-requests))))
+      )))
+
+
 (deftest deployed-funcs-test
   (let [requests [{:asdcResourceId "123" :typeName "pizza"}
                   {:asdcResourceId "456" :typeName "hamburger"}
diff --git a/test/sch/inventory_client_test.clj b/test/sch/inventory_client_test.clj
new file mode 100644 (file)
index 0000000..86f369c
--- /dev/null
@@ -0,0 +1,59 @@
+; ============LICENSE_START=======================================================
+; org.onap.dcae
+; ================================================================================
+; Copyright (c) 2017-2018 AT&T Intellectual Property. 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=========================================================
+;
+; ECOMP is a trademark and service mark of AT&T Intellectual Property.
+
+(ns sch.inventory-client-test
+  (:use (clojure test))
+  (:require [sch.inventory-client :as ic]
+            [cheshire.core :refer [generate-string]])
+  )
+
+
+(deftest test-create-inventory-conn
+  (let [inventory-uri "http://inventory"]
+    (is (= inventory-uri (str (ic/create-inventory-conn {:dcaeInventoryClient {:uri inventory-uri}}))))
+    ))
+
+
+(deftest append-params
+  (let [append-params #'sch.inventory-client/append-params]
+  (is (= "http://inventory?some-field=some-value" (append-params "http://inventory" ["some-field" "some-value"])))
+  ))
+
+
+(deftest test-get-service-types
+  (letfn [(fake-get [result url request]
+            {:status 200 :body result})]
+    (let [results {:items [{:typeId "123"}]}
+          conn (ic/create-inventory-conn "http://inventory")
+          fake-get-success (partial fake-get (generate-string results))
+          nada (intern 'clj-http.client 'get fake-get-success)]
+      (is (= (:items results) (ic/get-service-types! conn [])))
+      )))
+
+
+(deftest test-post-service-types
+  (letfn [(fake-post [result url request]
+            {:status 200 :body result})]
+    (let [result {:typeId "123"}
+          conn (ic/create-inventory-conn "http://inventory")
+          fake-post-success (partial fake-post (generate-string result))
+          nada (intern 'clj-http.client 'post fake-post-success)]
+      (is (= result (ic/post-service-type! conn {})))
+      )))
index 73415a7..11ad59d 100644 (file)
@@ -1,6 +1,6 @@
 major=1\r
 minor=1\r
-patch=0\r
+patch=1\r
 base_version=${major}.${minor}.${patch}\r
 release_version=${base_version}\r
 snapshot_version=${base_version}-SNAPSHOT\r