blob: d804a27a3029ddb01393d2fdaa92fd9c2751fde7 [file] [log] [blame]
subhash kumar singh327d9db2021-09-30 19:07:18 +00001/*
2==================================================================================
3 Copyright (c) 2021 Samsung
4
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8
9 http://www.apache.org/licenses/LICENSE-2.0
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16
17 This source code is part of the near-RT RIC (RAN Intelligent Controller)
18 platform project (RICP).
19==================================================================================
20*/
21package resthooks
22
23import (
24 "os"
naman.guptad5aa5be2022-02-23 11:44:43 +053025 "strconv"
subhash kumar singh327d9db2021-09-30 19:07:18 +000026 "testing"
27
naman.guptaab3e9ee2022-02-18 18:03:36 +053028 "gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/a1"
naman.guptad5aa5be2022-02-23 11:44:43 +053029 "gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/models"
subhash kumar singh327d9db2021-09-30 19:07:18 +000030 "github.com/stretchr/testify/assert"
31 "github.com/stretchr/testify/mock"
32)
33
34var rh *Resthook
35var sdlInst *SdlMock
36
37func TestMain(m *testing.M) {
38 sdlInst = new(SdlMock)
subhash kumar singh6017d6a2021-10-26 12:14:26 +000039
naman.guptaab3e9ee2022-02-18 18:03:36 +053040 sdlInst.On("GetAll", "A1m_ns").Return([]string{"a1.policy_instance.1006001.qos",
41 "a1.policy_type.1006001",
42 "a1.policy_type.20000",
43 "a1.policy_inst_metadata.1006001.qos",
44 }, nil)
subhash kumar singh6017d6a2021-10-26 12:14:26 +000045
naman.guptaab3e9ee2022-02-18 18:03:36 +053046 a1.Init()
subhash kumar singh327d9db2021-09-30 19:07:18 +000047 rh = createResthook(sdlInst)
48 code := m.Run()
49 os.Exit(code)
50}
51
52func TestGetAllPolicyType(t *testing.T) {
53 resp := rh.GetAllPolicyType()
54 assert.Equal(t, 2, len(resp))
55}
56
naman.guptad5aa5be2022-02-23 11:44:43 +053057func TestCreatePolicyType(t *testing.T) {
58 var policyTypeId models.PolicyTypeID
59 policyTypeId = 20001
60 var policyTypeSchema models.PolicyTypeSchema
61 name := "admission_control_policy_mine"
62 policyTypeSchema.Name = &name
63 policytypeid := int64(20001)
64 policyTypeSchema.PolicyTypeID = &policytypeid
65 description := "various parameters to control admission of dual connection"
66 policyTypeSchema.Description = &description
67 policyTypeSchema.CreateSchema = `{"$schema": "http://json-schema.org/draft-07/schema#","type":"object","properties": {"enforce": {"type":"boolean","default":"true",},"window_length": {"type": "integer","default":1,"minimum":1,"maximum":60,"description": "Sliding window length (in minutes)",},
68"blocking_rate": {"type":"number","default":10,"minimum":1,"maximum":100,"description": "% Connections to block",},"additionalProperties": false,},}`
69
70 data, err := policyTypeSchema.MarshalBinary()
71 a1.Logger.Debug("error : %+v ", err)
72 a1.Logger.Debug("data : %+v ", data)
73 key := "a1.policy_type." + strconv.FormatInt(20001, 10)
74 a1.Logger.Debug("key : %+v ", key)
75 //Setup Expectations
76 sdlInst.On("SetIfNotExists", a1MediatorNs, key, string(data)).Return(true, nil)
77
78 errresp := rh.CreatePolicyType(policyTypeId, policyTypeSchema)
79 //Data Assertion
80 assert.Nil(t, errresp)
81 //Mock Assertion :Behavioral
82 sdlInst.AssertExpectations(t)
83}
84
subhash kumar singh327d9db2021-09-30 19:07:18 +000085type SdlMock struct {
86 mock.Mock
87}
88
89func (s *SdlMock) GetAll(ns string) ([]string, error) {
naman.guptaab3e9ee2022-02-18 18:03:36 +053090 args := s.MethodCalled("GetAll", ns)
91 return args.Get(0).([]string), nil
92}
93
94func (s *SdlMock) SetIfNotExists(ns string, key string, data interface{}) (bool, error) {
naman.guptad5aa5be2022-02-23 11:44:43 +053095 a1.Logger.Debug("SetIfNotExists mock called")
96 args := s.MethodCalled("SetIfNotExists", ns, key, data)
97 return args.Bool(0), nil
subhash kumar singh327d9db2021-09-30 19:07:18 +000098}
naman.gupta68644732022-02-24 14:41:55 +053099
100func (s *SdlMock) Get(ns string, keys []string) (map[string]interface{}, error) {
101 return make(map[string]interface{}), nil
102}