adding license info
Change-Id: If300e60444c4896b9ade1b489633c41a299f0ef2
diff --git a/models/abstract/ChassisUtils_test.go b/models/abstract/ChassisUtils_test.go
new file mode 100644
index 0000000..ecc5752
--- /dev/null
+++ b/models/abstract/ChassisUtils_test.go
@@ -0,0 +1,39 @@
+/*
+ Copyright 2017 the original author or authors.
+
+ 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.
+*/
+
+package abstract_test
+
+import (
+ "testing"
+
+ "gerrit.opencord.org/abstract-olt/models/abstract"
+)
+
+func TestChassisUtils_GenerateChassis(t *testing.T) {
+ chassis := abstract.GenerateChassis("MY_CLLI")
+ slot := chassis.Slots[6]
+ port := slot.Ports[0]
+ ont := port.Onts[3]
+ svlan := ont.Svlan
+ cvlan := ont.Cvlan
+ if svlan != 98 { // see map doc
+ t.Fail()
+ }
+ if cvlan != 434 { // see map doc
+ t.Fail()
+ }
+
+}
diff --git a/models/chassisMap.go b/models/chassisMap.go
index 30ae8e3..65e552d 100644
--- a/models/chassisMap.go
+++ b/models/chassisMap.go
@@ -17,25 +17,25 @@
package models
import (
- "fmt"
+ "sync"
"gerrit.opencord.org/abstract-olt/models/abstract"
"gerrit.opencord.org/abstract-olt/models/physical"
)
+var once sync.Once
+var absOnce sync.Once
var chassisMap map[string]*physical.Chassis
-var abstractChassisMap map[string]*abstract.Chassis
+var aChassisMap map[string]*abstract.Chassis
/*
GetPhyChassisMap return the chassis map singleton
*/
func GetPhyChassisMap() *map[string]*physical.Chassis {
- if chassisMap == nil {
- fmt.Println("chassisMap was nil")
+ // the go singleton pattern
+ once.Do(func() {
chassisMap = make(map[string]*physical.Chassis)
-
- }
- fmt.Printf("chassis map %v\n", chassisMap)
+ })
return &chassisMap
}
@@ -43,11 +43,9 @@
GetAbstractChassisMap return the chassis map singleton
*/
func GetAbstractChassisMap() *map[string]*abstract.Chassis {
- if abstractChassisMap == nil {
- fmt.Println("chassisMap was nil")
- abstractChassisMap = make(map[string]*abstract.Chassis)
-
- }
- fmt.Printf("chassis map %v\n", chassisMap)
- return &abstractChassisMap
+ // the go singleton pattern
+ absOnce.Do(func() {
+ aChassisMap = make(map[string]*abstract.Chassis)
+ })
+ return &aChassisMap
}
diff --git a/models/chassisMap_test.go b/models/chassisMap_test.go
new file mode 100644
index 0000000..7b30eeb
--- /dev/null
+++ b/models/chassisMap_test.go
@@ -0,0 +1,40 @@
+/*
+ Copyright 2017 the original author or authors.
+
+ 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.
+*/
+
+package models_test
+
+import (
+ "testing"
+
+ "gerrit.opencord.org/abstract-olt/models"
+)
+
+func TestChassisMap_GetPhyChassisMap(t *testing.T) {
+ firstChassisMap := models.GetPhyChassisMap()
+ secondChassisMap := models.GetPhyChassisMap()
+
+ if firstChassisMap != secondChassisMap {
+ t.Fatalf("GetPhyChassisMap should always return pointer to same map")
+ }
+}
+func TestChassisMap_GetAbstractChassisMap(t *testing.T) {
+ firstChassisMap := models.GetAbstractChassisMap()
+ secondChassisMap := models.GetAbstractChassisMap()
+
+ if firstChassisMap != secondChassisMap {
+ t.Fatalf("GetPhyChassisMap should always return pointer to same map")
+ }
+}
diff --git a/models/physical/edgecore_test.go b/models/physical/edgecore_test.go
new file mode 100644
index 0000000..a7fbf68
--- /dev/null
+++ b/models/physical/edgecore_test.go
@@ -0,0 +1,41 @@
+/*
+ Copyright 2017 the original author or authors.
+
+ 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.
+*/
+
+package physical_test
+
+import (
+ "net"
+ "testing"
+
+ "gerrit.opencord.org/abstract-olt/models/physical"
+)
+
+func TestPhysical_Edgecore(t *testing.T) {
+ clli := "test_clli"
+ chassis := physical.Chassis{CLLI: clli}
+ hostname := "my_name"
+ ip := "192.168.0.1"
+ port := 33
+ address := net.TCPAddr{IP: net.ParseIP(ip), Port: port}
+ parent := &chassis
+ switchPort := 3
+
+ olt := &physical.SimpleOLT{CLLI: clli, Hostname: hostname, Address: address, Parent: parent, DataSwitchPort: switchPort}
+ edgeCoreOlt := physical.CreateEdgecore(olt)
+ if edgeCoreOlt.GetCLLI() != clli {
+ t.Fatal("Failed to assign CLLI in CreateEdgecore")
+ }
+}