blob: 59aad10c598ce041032ce63ff4d32c6aed16388f [file] [log] [blame]
donNewtonAlphab9b85eb2018-08-14 14:28:22 -04001/*
2 Copyright 2017 the original author or authors.
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17package api_test
18
19import (
20 "fmt"
21 "testing"
22
23 "gerrit.opencord.org/abstract-olt/api"
donNewtonAlpha5234b132018-08-16 14:12:28 -040024 "gerrit.opencord.org/abstract-olt/models/abstract"
donNewtonAlpha8205a4d2018-08-16 18:27:20 -040025 "gerrit.opencord.org/abstract-olt/models/physical"
donNewtonAlphab9b85eb2018-08-14 14:28:22 -040026 "golang.org/x/net/context"
27)
28
29var clli string
donNewtonAlpha5234b132018-08-16 14:12:28 -040030var slotHostname = "SlotOne"
donNewtonAlphab9b85eb2018-08-14 14:28:22 -040031var ctx context.Context
32var server api.Server
33
34func TestHandler_CreateChassis(t *testing.T) {
35 fmt.Println("in handlerTest_CreateChassis")
36 ctx = context.Background()
37 server = api.Server{}
38 message := &api.AddChassisMessage{CLLI: "my cilli", VCoreIP: "192.168.0.1", VCorePort: 9191}
39 ret, err := server.CreateChassis(ctx, message)
40 if err != nil {
41 t.Fatalf("CreateChassis failed %v\n", err)
42 }
43 clli = ret.DeviceID
donNewtonAlphab9b85eb2018-08-14 14:28:22 -040044}
45func TestHandler_CreateOLTChassis(t *testing.T) {
donNewtonAlphaf7cc9992018-08-29 14:23:02 -040046 fmt.Println("in handlerTest_CreateOltChassis")
donNewtonAlphab9b85eb2018-08-14 14:28:22 -040047 message := &api.AddOLTChassisMessage{CLLI: clli, SlotIP: "12.2.2.0", SlotPort: 9191,
donNewtonAlpha5234b132018-08-16 14:12:28 -040048 Hostname: slotHostname, Type: api.AddOLTChassisMessage_edgecore}
donNewtonAlphab9b85eb2018-08-14 14:28:22 -040049 ret, err := server.CreateOLTChassis(ctx, message)
50 if err != nil {
51 t.Fatalf("CreateOLTChassis failed %v\n", err)
52 }
53 fmt.Printf("CreateOLTChassis success %v\n", ret)
donNewtonAlpha8205a4d2018-08-16 18:27:20 -040054}
donNewtonAlpha5234b132018-08-16 14:12:28 -040055func TestHandler_ProvisionOnt(t *testing.T) {
56 ctx = context.Background()
57 server = api.Server{}
donNewtonAlphaf7cc9992018-08-29 14:23:02 -040058 fmt.Println("in handlerTest_ProvisonOnt")
donNewtonAlpha5234b132018-08-16 14:12:28 -040059 // this one should succeed
60 message := &api.AddOntMessage{CLLI: clli, SlotNumber: 1, PortNumber: 3, OntNumber: 2, SerialNumber: "2033029402"}
61 ret, err := server.ProvisionOnt(ctx, message)
62 if err != nil {
63 t.Fatalf("ProvisionOnt failed %v\n", err)
64 }
donNewtonAlphaf7cc9992018-08-29 14:23:02 -040065 // do it again on same ont/port should fail with AllReadyActiveError
66 ret, err = server.ProvisionOnt(ctx, message)
67 if err != nil {
68 switch err.(type) {
69 case *physical.AllReadyActiveError:
70 fmt.Printf("ProvisionOnt failed as it should with %v\n", err)
71 default:
72 t.Fatalf("ProvsionOnt test failed with %v\n", err)
73 }
74
75 } else {
76 t.Fatalf("ProvsionOnt should have failed with AllReadyActiveError but didn't")
77 }
78
donNewtonAlpha5234b132018-08-16 14:12:28 -040079 // this one should fail
donNewtonAlpha8205a4d2018-08-16 18:27:20 -040080 //SlotNumber 1 hasn't been provisioned
donNewtonAlpha5234b132018-08-16 14:12:28 -040081 message = &api.AddOntMessage{CLLI: clli, SlotNumber: 2, PortNumber: 3, OntNumber: 2, SerialNumber: "2033029402"}
82 ret, err = server.ProvisionOnt(ctx, message)
83 if err != nil {
84 switch err.(type) {
85 case *abstract.UnprovisonedPortError:
86 fmt.Printf("ProvisionOnt failed as it should with %v\n", err)
87 default:
88 t.Fatalf("ProvsionOnt test failed with %v\n", err)
89 }
90 } else {
91 t.Fatalf("ProvsionOnt should have failed but didn't")
92 }
93 fmt.Printf("ProvisionOnt success %v\n", ret)
donNewtonAlpha5234b132018-08-16 14:12:28 -040094}
donNewtonAlphaf7cc9992018-08-29 14:23:02 -040095func TestHandler_DeleteOnt(t *testing.T) {
96 ctx = context.Background()
97 server = api.Server{}
98 fmt.Println("in handlerTest_DeleteOnt")
99 // this one should succeed
100 //De-Activate ONT 3 on PONPort 0 Slot 0 on my cilli but not active
101 message := &api.DeleteOntMessage{CLLI: clli, SlotNumber: 1, PortNumber: 3, OntNumber: 2, SerialNumber: "2033029402"}
102 ret, err := server.DeleteOnt(ctx, message)
103 if err != nil {
104 t.Fatalf("DeleteOnt failed %v\n", err)
105 }
106 // This should fail with AllReadyDeactivatedError
107 ret, err = server.DeleteOnt(ctx, message)
108 if err != nil {
109 switch err.(type) {
110 case *physical.AllReadyDeactivatedError:
111 fmt.Printf("DeleteOnt failed as expected with %v\n", err)
112 default:
113 t.Fatalf("DeleteOnt failed with %v\n", err)
114 }
115 } else {
116 t.Fatal("DeleteOnt should have failed with AllReadyDeactivatedError")
117 }
118
119 // this one should fail
120 //SlotNumber 1 hasn't been provisioned
121 message = &api.DeleteOntMessage{CLLI: clli, SlotNumber: 2, PortNumber: 3, OntNumber: 2, SerialNumber: "2033029402"}
122 ret, err = server.DeleteOnt(ctx, message)
123 if err != nil {
124 switch err.(type) {
125 case *abstract.UnprovisonedPortError:
126 fmt.Printf("DeleteOnt failed as it should with %v\n", err)
127 default:
128 t.Fatalf("DeleteOnt test failed with %v\n", err)
129 }
130 } else {
131 t.Fatalf("DeleteOnt should have failed but didn't")
132 }
133 fmt.Printf("DeletenOnt success %v\n", ret)
134}