blob: c319e6dd17bef4ca7e38f97d84bdd704779a222c [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) {
donNewtonAlpha5234b132018-08-16 14:12:28 -040046 fmt.Println("in handlerTest_CreateChassis")
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}
55func TestHandler_EnableSlot(t *testing.T) {
56 ctx = context.Background()
57 server = api.Server{}
58 fmt.Println("in handler_test_EnableSlot")
59 // slot number 1 should be provisioned above
60 message := &api.ActivateSlotMessage{CLLI: clli, SlotNumber: 1}
61 ret, err := server.EnableSlot(ctx, message)
62 if err != nil {
63 t.Fatalf("EnableSlot failed with %v\n", err)
64 }
65 fmt.Printf("EnableSlot succeeded with %v\n", ret)
66 // Slot 2 isn't provisioned and should fail
67 message = &api.ActivateSlotMessage{CLLI: clli, SlotNumber: 2}
68 ret, err = server.EnableSlot(ctx, message)
69 if err != nil {
70 switch err.(type) {
71 case *physical.UnprovisionedSlotError:
72 fmt.Printf("EnableSlot failed as it should with %v\n", err)
73 default:
74 t.Fatalf("EnableSlot failed with %v\n", err)
75 }
76 t.Fatalf("EnableSlot should have failed but didn't")
77 }
donNewtonAlphab9b85eb2018-08-14 14:28:22 -040078
79}
donNewtonAlpha5234b132018-08-16 14:12:28 -040080func TestHandler_ProvisionOnt(t *testing.T) {
81 ctx = context.Background()
82 server = api.Server{}
83 fmt.Println("in handlerTest_CreateChassis")
84 // this one should succeed
85 message := &api.AddOntMessage{CLLI: clli, SlotNumber: 1, PortNumber: 3, OntNumber: 2, SerialNumber: "2033029402"}
86 ret, err := server.ProvisionOnt(ctx, message)
87 if err != nil {
88 t.Fatalf("ProvisionOnt failed %v\n", err)
89 }
90 // this one should fail
91 fmt.Println("here")
donNewtonAlpha8205a4d2018-08-16 18:27:20 -040092 //SlotNumber 1 hasn't been provisioned
donNewtonAlpha5234b132018-08-16 14:12:28 -040093 message = &api.AddOntMessage{CLLI: clli, SlotNumber: 2, PortNumber: 3, OntNumber: 2, SerialNumber: "2033029402"}
94 ret, err = server.ProvisionOnt(ctx, message)
95 if err != nil {
96 switch err.(type) {
97 case *abstract.UnprovisonedPortError:
98 fmt.Printf("ProvisionOnt failed as it should with %v\n", err)
99 default:
100 t.Fatalf("ProvsionOnt test failed with %v\n", err)
101 }
102 } else {
103 t.Fatalf("ProvsionOnt should have failed but didn't")
104 }
105 fmt.Printf("ProvisionOnt success %v\n", ret)
donNewtonAlpha5234b132018-08-16 14:12:28 -0400106}