Commit a3e919f4 authored by Yann Garcia's avatar Yann Garcia
Browse files

Enhance TestTrafficMgrCreateCategory test

parent 685e3120
Loading
Loading
Loading
Loading
+112 −58
Original line number Diff line number Diff line
@@ -8,19 +8,23 @@ import (
)

const ( // FIXME To be update with correct values at the end
	amName      = "pc"
	amNamespace = "postgis-ns"
	amDBUser    = "postgres"
	amDBPwd     = "pwd"
	amDBHost    = "localhost"
	amDBPort    = "30432"

	poa1Id    = "poa1-Iid"
	poa1Name  = "poa1-name"
	poa1Time1 = 0
	poa1Time2 = 0
	poa1Time3 = 0
	poa1Time4 = 0
	tmName      = "pc"
	tmNamespace = "postgis-ns"
	tmDBUser    = "postgres"
	tmDBPwd     = "pwd"
	tmDBHost    = "localhost"
	tmDBPort    = "30432"

	category1              = "poa1-category"
	poaName1               = "poa1-name"
	zeroToThree1           = 0
	threeToSix1            = 0
	sixToNine1             = 0
	nineToTwelve1          = 0
	twelveToFifteen1       = 0
	fifteenToEighteen1     = 0
	eighteenToTwentyOne1   = 0
	twentyOneToTwentyFour1 = 0
)

func TestNewTrafficMgr(t *testing.T) {
@@ -29,36 +33,36 @@ func TestNewTrafficMgr(t *testing.T) {

	// Invalid Connector
	fmt.Println("Invalid VIS Asset Manager")
	tm, err := NewTrafficMgr("", amNamespace, amDBUser, amDBPwd, amDBHost, amDBPort)
	tm, err := NewTrafficMgr("", tmNamespace, tmDBUser, tmDBPwd, tmDBHost, tmDBPort)
	if err == nil || tm != nil {
		t.Fatalf("DB connection should have failed")
	}
	tm, err = NewTrafficMgr(amName, amNamespace, amDBUser, amDBPwd, "invalid-host", amDBPort)
	tm, err = NewTrafficMgr(tmName, tmNamespace, tmDBUser, tmDBPwd, "invalid-host", tmDBPort)
	if err == nil || tm != nil {
		t.Fatalf("DB connection should have failed")
	}
	tm, err = NewTrafficMgr(amName, amNamespace, amDBUser, amDBPwd, amDBHost, "invalid-port")
	tm, err = NewTrafficMgr(tmName, tmNamespace, tmDBUser, tmDBPwd, tmDBHost, "invalid-port")
	if err == nil || tm != nil {
		t.Fatalf("DB connection should have failed")
	}
	tm, err = NewTrafficMgr(amName, amNamespace, amDBUser, "invalid-pwd", amDBHost, amDBPort)
	tm, err = NewTrafficMgr(tmName, tmNamespace, tmDBUser, "invalid-pwd", tmDBHost, tmDBPort)
	if err == nil || tm != nil {
		t.Fatalf("DB connection should have failed")
	}

	// Valid Connector
	fmt.Println("Create valid VIS Asset Manager")
	tm, err = NewTrafficMgr(amName, amNamespace, amDBUser, amDBPwd, amDBHost, amDBPort)
	tm, err = NewTrafficMgr(tmName, tmNamespace, tmDBUser, tmDBPwd, tmDBHost, tmDBPort)
	if err != nil || tm == nil {
		t.Fatalf("Failed to create VIS Asset Manager")
	}

	// Cleanup
	_ = tm.DeleteTable(TrafficTable)
	_ = tm.DeleteTables()

	// Create tables
	fmt.Println("Create Table")
	err = tm.CreateTable()
	fmt.Println("Create Tables")
	err = tm.CreateTables()
	if err != nil {
		t.Fatalf("Failed to create table")
	}
@@ -72,13 +76,13 @@ func TestNewTrafficMgr(t *testing.T) {
	// t.Fatalf("DONE")
}

func TestTrafficMgrCreatePoa(t *testing.T) {
func TestTrafficMgrCreateCategory(t *testing.T) {
	fmt.Println("--- ", t.Name())
	log.MeepTextLogInit(t.Name())

	// Create Connector
	fmt.Println("Create valid VIS Asset Manager")
	tm, err := NewTrafficMgr(amName, amNamespace, amDBUser, amDBPwd, amDBHost, amDBPort)
	tm, err := NewTrafficMgr(tmName, tmNamespace, tmDBUser, tmDBPwd, tmDBHost, tmDBPort)
	if err != nil || tm == nil {
		t.Fatalf("Failed to create VIS Asset Manager")
	}
@@ -87,69 +91,119 @@ func TestTrafficMgrCreatePoa(t *testing.T) {
	_ = tm.DeleteTables()

	// Create tables
	fmt.Println("Create Table")
	err = tm.CreateTable()
	fmt.Println("Create Tables")
	err = tm.CreateTables()
	if err != nil {
		t.Fatalf("Failed to create tables")
	}

	// Make sure POA load don't exist
	fmt.Println("Verify no POA load present")
	// TODO
	/*poaMap, err := tm.GetAllPoaLoad()
	// Make sure Category don't exist
	/*fmt.Println("Verify no Category present")
	catMap, err := tm.GetAllCategoryLoad()
	if err != nil {
		t.Fatalf("Failed to get all POA load")
		t.Fatalf("Failed to get all Category")
	}
	if len(poaMap) != 0 {
		t.Fatalf("No POA load should be present")
	if len(catMap) != 0 {
		t.Fatalf("No Category should be present")
	}*/

	// Add Invalid POA load
	fmt.Println("Create Invalid POA load")
	poaData := map[string]interface{}{
		FieldId      : poa1Id,
		FieldPoaName : poa1Name,
		FieldTime1   : poa1Time1,
		FieldTime2   : poa1Time2,
		FieldTime3   : poa1Time3,
		FieldTime4   : poa1Time4,
	}
	err = tm.CreatePoaLoad("", poa1Name, poaData)
	// Add Invalid Category
	fmt.Println("Create Invalid Category")
	catData := map[string]int32{
		FieldZeroToThree:           zeroToThree1,
		FieldThreeToSix:            threeToSix1,
		FieldSixToNine:             sixToNine1,
		FieldNineToTwelve:          nineToTwelve1,
		FieldTwelveToFifteen:       twelveToFifteen1,
		FieldFifteenToEighteen:     fifteenToEighteen1,
		FieldEighteenToTwentyOne:   eighteenToTwentyOne1,
		FieldTwentyOneToTwentyFour: twentyOneToTwentyFour1,
	}
	err = tm.CreateCategoryLoad("", catData) // Invalid category field value
	if err == nil {
		t.Fatalf("POA load creation should have failed")
	}

	// Add POA load & Validate successfully added
	fmt.Println("Add POA load & Validate successfully added")
	poaData = map[string]interface{}{
		FieldId      : poa1Id,
		FieldPoaName : poa1Name,
		FieldTime1   : poa1Time1,
		FieldTime2   : poa1Time2,
		FieldTime3   : poa1Time3,
		FieldTime4   : poa1Time4,
	}
	err = tm.CreatePoaLoad(poa1Id, poa1Name, poaData)
	catData = map[string]int32{
		FieldZeroToThree:           zeroToThree1,
		FieldThreeToSix:            threeToSix1,
		FieldSixToNine:             sixToNine1,
		FieldNineToTwelve:          nineToTwelve1,
		FieldTwelveToFifteen:       twelveToFifteen1,
		FieldFifteenToEighteen:     fifteenToEighteen1,
		FieldEighteenToTwentyOne:   eighteenToTwentyOne1,
		FieldTwentyOneToTwentyFour: twentyOneToTwentyFour1,
	}
	err = tm.CreateCategoryLoad(category1, catData)
	if err != nil {
		t.Fatalf("Failed to create asset: " + err.Error())
	}
	poaMap, err := tm.GetPoaLoad(poa1Name)
	if err != nil || poaMap == nil {
	catMap, err := tm.GetCategoryLoad(category1)
	if err != nil || catMap == nil {
		t.Fatalf("Failed to get POA load")
	}
	// TODO Validate 
	// Validate
	if !validateCategory(catMap, category1, zeroToThree1, threeToSix1, sixToNine1, nineToTwelve1, twelveToFifteen1, fifteenToEighteen1, eighteenToTwentyOne1, twentyOneToTwentyFour1) {
		t.Fatalf("Category validation failed")
	}
	// Delete all & validate updatespoaMap

	fmt.Println("Delete all & validate updates")
	// TODO
	/*err = tm.DeleteAllPoaLoad()
	/*err = tm.DeleteAllCategory()
	if err != nil {
		t.Fatalf("Failed to delete all POA load")
	}
	poaMap, err = tm.GetAllPoaLoad()
	poaMap, err = tm.GetAllCategory()
	if err != nil || len(poaMap) != 0 {
		t.Fatalf("POA load should no longer exist")
	}*/

	// t.Fatalf("DONE")
}

func validateCategory(categoryLoads *CategoryLoads, category string, zeroToThree int32, threeToSix int32, sixToNine int32, nineToTwelve int32, twelveToFifteen int32, fifteenToEighteen int32, eighteenToTwentyOne int32, twentyOneToTwentyFour int32) bool {
	if categoryLoads == nil {
		fmt.Println("categoryLoads == nil")
		return false
	}
	if categoryLoads.Category != category {
		fmt.Println("CategoryLoads.Category != category")
		return false
	}
	if categoryLoads.ZeroToThree != zeroToThree {
		fmt.Println("CategoryLoads.ZeroToThree != zeroToThree")
		return false
	}
	if categoryLoads.ThreeToSix != threeToSix {
		fmt.Println("CategoryLoads.ThreeToSix != threeToSix")
		return false
	}
	if categoryLoads.SixToNine != sixToNine {
		fmt.Println("CategoryLoads.SixToNine != sixToNine")
		return false
	}
	if categoryLoads.NineToTwelve != nineToTwelve {
		fmt.Println("CategoryLoads.NineToTwelve != nineToTwelve")
		return false
	}
	if categoryLoads.EighteenToTwentyOne != eighteenToTwentyOne {
		fmt.Println("CategoryLoads.EighteenToTwentyOne != eighteenToTwentyOne")
		return false
	}
	if categoryLoads.FifteenToEighteen != fifteenToEighteen {
		fmt.Println("CategoryLoads.FifteenToEighteen != fifteenToEighteen")
		return false
	}
	if categoryLoads.FifteenToEighteen != fifteenToEighteen {
		fmt.Println("CategoryLoads.FifteenToEighteen != fifteenToEighteen")
		return false
	}
	if categoryLoads.TwentyOneToTwentyFour != twentyOneToTwentyFour {
		fmt.Println("CategoryLoads.TwentyOneToTwentyFour != twentyOneToTwentyFour")
		return false
	}

	return true
}