summaryrefslogtreecommitdiffstats
path: root/test/sch/handle_test.clj
blob: e9865637e72e039b0a0a95033704fb17d975e27c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
; ============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.handle-test
  (:use (clojure test))
  (:require [cheshire.core :refer [parse-stream]]
            [sch.handle :refer :all]
            [clj-fakes.core :as f])
  )


(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 {})
          ]
      (f/with-fakes
        (f/patch! #'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!]
      (f/with-fakes
        (f/patch! #'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 }])]
      (f/with-fakes
        (f/patch! #'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!]
      (f/with-fakes
        (f/patch! #'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"}
                  {:asdcResourceId "789" :typeName "hotdog"}]
        attempted [{:asdcResourceId "456" :typeName "hamburger"}
                   {:asdcResourceId "789" :typeName "hotdog"}]
        completed [{:asdcResourceId "789" :typeName "hotdog"}]
        ]
    (is (= (deployed-ok attempted completed) completed))
    (is (= (deployed-error attempted completed) [(first attempted)]))
    (is (= (deployed-already requests attempted) [(first requests)]))
    ))