github.com/influxdata/influxdb/v2@v2.7.6/dbrp_mapping_test.go (about) 1 package influxdb_test 2 3 import ( 4 "testing" 5 6 platform "github.com/influxdata/influxdb/v2" 7 platform2 "github.com/influxdata/influxdb/v2/kit/platform" 8 platformtesting "github.com/influxdata/influxdb/v2/testing" 9 ) 10 11 func TestDBRPMapping_Validate(t *testing.T) { 12 type fields struct { 13 Database string 14 RetentionPolicy string 15 Default bool 16 OrganizationID platform2.ID 17 BucketID platform2.ID 18 } 19 tests := []struct { 20 name string 21 fields fields 22 wantErr bool 23 }{ 24 { 25 name: "mapping requires a database", 26 fields: fields{ 27 Database: "", 28 }, 29 wantErr: true, 30 }, 31 { 32 name: "mapping requires an rp", 33 fields: fields{ 34 Database: "telegraf", 35 RetentionPolicy: "", 36 }, 37 wantErr: true, 38 }, 39 { 40 name: "mapping requires an orgid", 41 fields: fields{ 42 Database: "telegraf", 43 RetentionPolicy: "autogen", 44 }, 45 wantErr: true, 46 }, 47 { 48 name: "mapping requires a bucket id", 49 fields: fields{ 50 Database: "telegraf", 51 RetentionPolicy: "autogen", 52 OrganizationID: platformtesting.MustIDBase16("debac1e0deadbeef"), 53 }, 54 wantErr: true, 55 }, 56 { 57 name: "db cannot have non-letters/numbers/_/./-", 58 fields: fields{ 59 Database: string([]byte{0x0D}), 60 }, 61 wantErr: true, 62 }, 63 { 64 name: "rp cannot have non-printable characters", 65 fields: fields{ 66 Database: "telegraf", 67 RetentionPolicy: string([]byte{0x0D}), 68 }, 69 wantErr: true, 70 }, 71 { 72 name: "dash accepted as valid database", 73 fields: fields{ 74 Database: "howdy-doody", 75 RetentionPolicy: "autogen", 76 OrganizationID: platformtesting.MustIDBase16("debac1e0deadbeef"), 77 BucketID: platformtesting.MustIDBase16("5ca1ab1edeadbea7"), 78 }, 79 }, 80 } 81 for _, tt := range tests { 82 t.Run(tt.name, func(t *testing.T) { 83 m := platform.DBRPMapping{ 84 Database: tt.fields.Database, 85 RetentionPolicy: tt.fields.RetentionPolicy, 86 Default: tt.fields.Default, 87 OrganizationID: tt.fields.OrganizationID, 88 BucketID: tt.fields.BucketID, 89 } 90 91 if err := m.Validate(); (err != nil) != tt.wantErr { 92 t.Errorf("DBRPMapping.Validate() error = %v, wantErr %v", err, tt.wantErr) 93 } 94 }) 95 } 96 }