You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by oc...@apache.org on 2020/11/25 20:43:27 UTC

[trafficcontrol] 04/04: Improve validation error message for regions with no division name (#5314)

This is an automated email from the ASF dual-hosted git repository.

ocket8888 pushed a commit to branch 5.0.x
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit d07150a62de6c1aa2026a43a03f01d02ba2c4e75
Author: Myles B <47...@users.noreply.github.com>
AuthorDate: Wed Nov 25 13:20:05 2020 -0700

    Improve validation error message for regions with no division name (#5314)
    
    * expanded TORegion.Validate and copied+updated a test from divisions
    
    Fixed `TestValidation` in `regions_test.go`
    
    - Syntax errors resolved
    - Wrapped up tc.Region structs in TORegion structs
    - Added logging to ensure expected error message is displayed
    
    removed comment and reflect usage in TestValidate
    
    updated regions validation error message, updated test
    
    added division id to pseudo-fixture in regions_test
    
    sort imports in regions_test.go
    
    reordered imports
    
    i dont know exactly what gofmt is complaining about here
    
    gofmt on imports
    
    * Fix import order
    
    * removed divisionName from validation
    
    * s/are//
    
    Co-authored-by: ocket8888 <oc...@apache.org>
    (cherry picked from commit 82df69b064029dad824ff90df59e739a8368bfa3)
---
 traffic_ops/traffic_ops_golang/region/regions.go   |  5 +++-
 .../traffic_ops_golang/region/regions_test.go      | 34 ++++++++++++++++++++--
 2 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/traffic_ops/traffic_ops_golang/region/regions.go b/traffic_ops/traffic_ops_golang/region/regions.go
index 600471e..3661515 100644
--- a/traffic_ops/traffic_ops_golang/region/regions.go
+++ b/traffic_ops/traffic_ops_golang/region/regions.go
@@ -95,7 +95,10 @@ func (region *TORegion) GetType() string {
 
 func (region *TORegion) Validate() error {
 	if len(region.Name) < 1 {
-		return errors.New(`Region 'name' is required.`)
+		return errors.New(`region 'name' is required`)
+	}
+	if region.Division == 0 {
+		return errors.New(`region 'division' is required`)
 	}
 	return nil
 }
diff --git a/traffic_ops/traffic_ops_golang/region/regions_test.go b/traffic_ops/traffic_ops_golang/region/regions_test.go
index 79431ce..c9165c8 100644
--- a/traffic_ops/traffic_ops_golang/region/regions_test.go
+++ b/traffic_ops/traffic_ops_golang/region/regions_test.go
@@ -23,11 +23,12 @@ import (
 	"testing"
 	"time"
 
+	"github.com/jmoiron/sqlx"
+	sqlmock "gopkg.in/DATA-DOG/go-sqlmock.v1"
+
 	"github.com/apache/trafficcontrol/lib/go-tc"
 	"github.com/apache/trafficcontrol/traffic_ops/traffic_ops_golang/api"
 	"github.com/apache/trafficcontrol/traffic_ops/traffic_ops_golang/test"
-	"github.com/jmoiron/sqlx"
-	sqlmock "gopkg.in/DATA-DOG/go-sqlmock.v1"
 )
 
 func getTestRegions() []tc.Region {
@@ -46,7 +47,6 @@ func getTestRegions() []tc.Region {
 
 	return regions
 }
-
 func TestReadRegions(t *testing.T) {
 
 	mockDB, mock, err := sqlmock.New()
@@ -109,3 +109,31 @@ func TestInterfaces(t *testing.T) {
 		t.Errorf("Region must be Identifier")
 	}
 }
+func TestValidation(t *testing.T) {
+	testRegion := tc.Region{
+		DivisionName: "west",
+		Division:     77,
+		ID:           1,
+		Name:         "region1",
+		LastUpdated:  tc.TimeNoMod{Time: time.Now()},
+	}
+	testTORegion := TORegion{Region: testRegion}
+	errs := test.SortErrors(test.SplitErrors(testTORegion.Validate()))
+
+	if len(errs) > 0 {
+		t.Errorf(`expected no errors,  got %v`, errs)
+	}
+
+	testRegionNoDivision := tc.Region{
+		ID:          1,
+		Name:        "region1",
+		LastUpdated: tc.TimeNoMod{Time: time.Now()},
+	}
+	testTORegionNoDivision := TORegion{Region: testRegionNoDivision}
+	errs = test.SortErrors(test.SplitErrors(testTORegionNoDivision.Validate()))
+	if len(errs) == 0 {
+		t.Errorf(`expected an error with a nil division id, received no error`)
+	} else {
+		t.Logf(`Got expected error validating region with no division: %s`, errs[0].Error())
+	}
+}