Updates for G Maintenance release
[nonrtric/plt/sme.git] / capifcore / internal / eventsapi / typevalidation_test.go
1 // -
2 //   ========================LICENSE_START=================================
3 //   O-RAN-SC
4 //   %%
5 //   Copyright (C) 2023: Nordix Foundation
6 //   %%
7 //   Licensed under the Apache License, Version 2.0 (the "License");
8 //   you may not use this file except in compliance with the License.
9 //   You may obtain a copy of the License at
10 //
11 //        http://www.apache.org/licenses/LICENSE-2.0
12 //
13 //   Unless required by applicable law or agreed to in writing, software
14 //   distributed under the License is distributed on an "AS IS" BASIS,
15 //   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 //   See the License for the specific language governing permissions and
17 //   limitations under the License.
18 //   ========================LICENSE_END===================================
19 //
20
21 package eventsapi
22
23 import (
24         "testing"
25
26         "github.com/stretchr/testify/assert"
27 )
28
29 func TestValidateEventSubscription(t *testing.T) {
30         subUnderTest := EventSubscription{}
31
32         err := subUnderTest.Validate()
33
34         assert.NotNil(t, err)
35         assert.Contains(t, err.Error(), "required")
36         assert.Contains(t, err.Error(), "events")
37
38         var invalidEventType CAPIFEvent = "invalid"
39         subUnderTest.Events = []CAPIFEvent{invalidEventType}
40         err = subUnderTest.Validate()
41         assert.NotNil(t, err)
42         assert.Contains(t, err.Error(), "invalid")
43         assert.Contains(t, err.Error(), "events")
44
45         subUnderTest.Events = []CAPIFEvent{CAPIFEventAPIINVOKERONBOARDED}
46         err = subUnderTest.Validate()
47         assert.NotNil(t, err)
48         assert.Contains(t, err.Error(), "missing")
49         assert.Contains(t, err.Error(), "notificationDestination")
50
51         subUnderTest.NotificationDestination = "invalid dest"
52         err = subUnderTest.Validate()
53         if assert.Error(t, err) {
54                 assert.Contains(t, err.Error(), "invalid")
55                 assert.Contains(t, err.Error(), "notificationDestination")
56         }
57
58         subUnderTest.NotificationDestination = "http://golang.cafe/"
59         err = subUnderTest.Validate()
60         assert.Nil(t, err)
61 }