diff --git a/id/id_test.go b/id/id_test.go index 9fb9fed14f21e9e65f56657d29d2ac49f4eca8a3..1a72840652db54bce9451c57358e2aa109651da4 100644 --- a/id/id_test.go +++ b/id/id_test.go @@ -14,27 +14,27 @@ func Test_ParseID(t *testing.T) { wantError bool }{ { - name: Service, + name: "ServiceID", id: "/services/<service_id>", result: &ID{Descriptor: &ServiceID{ServiceID: "<service_id>"}}, }, { - name: User, + name: "UserID", id: "/users/<user_id>", result: &ID{Descriptor: &UserID{UserID: "<user_id>"}}, }, { - name: Organization, + name: "OrganizationID", id: "/orgs/<org_id>", result: &ID{Descriptor: &OrganizationID{OrganizationID: "<org_id>"}}, }, { - name: Space, + name: "SpaceID", id: "/spaces/<space_id>", result: &ID{Descriptor: &SpaceID{SpaceID: "<space_id>"}}, }, { - name: Client, + name: "ClientID", id: "/spaces/<space_id>/clients/<client_id>", result: &ID{Descriptor: &ClientID{ SpaceID: SpaceID{SpaceID: "<space_id>"}, @@ -42,7 +42,7 @@ func Test_ParseID(t *testing.T) { }}, }, { - name: Role, + name: "RoleID", id: "/spaces/<space_id>/roles/<role_id>", result: &ID{Descriptor: &RoleID{ SpaceID: SpaceID{SpaceID: "<space_id>"}, @@ -50,7 +50,7 @@ func Test_ParseID(t *testing.T) { }}, }, { - name: Environment, + name: "EnvironmentID", id: "/spaces/<space_id>/envs/<env_id>", result: &ID{Descriptor: &EnvironmentID{ SpaceID: SpaceID{SpaceID: "<space_id>"}, @@ -58,7 +58,7 @@ func Test_ParseID(t *testing.T) { }}, }, { - name: Collection, + name: "CollectionID", id: "/spaces/<space_id>/envs/<env_id>/cols/<collection_id>", result: &ID{Descriptor: &CollectionID{ EnvironmentID: EnvironmentID{ @@ -69,7 +69,7 @@ func Test_ParseID(t *testing.T) { }}, }, { - name: Schema, + name: "SchemaID", id: "/spaces/<space_id>/envs/<env_id>/schema/<collection_id>", result: &ID{Descriptor: &SchemaID{ EnvironmentID: EnvironmentID{ @@ -80,7 +80,7 @@ func Test_ParseID(t *testing.T) { }}, }, { - name: Item, + name: "ItemID", id: "/spaces/<space_id>/envs/<env_id>/cols/<collection_id>/items/<item_id>", result: &ID{Descriptor: &ItemID{ CollectionID: CollectionID{ @@ -94,7 +94,7 @@ func Test_ParseID(t *testing.T) { }}, }, { - name: Revision, + name: "RevisionID", id: "/spaces/<space_id>/envs/<env_id>/cols/<collection_id>/items/<item_id>/revs/<rev_id>", result: &ID{Descriptor: &RevisionID{ ItemID: ItemID{ @@ -111,7 +111,7 @@ func Test_ParseID(t *testing.T) { }}, }, { - name: Field, + name: "FieldID", id: "/spaces/<space_id>/envs/<env_id>/cols/<collection_id>/items/<item_id>/fields/<field_name>", result: &ID{Descriptor: &FieldID{ ItemID: ItemID{ @@ -175,66 +175,48 @@ func Test_ParseID(t *testing.T) { func Test_Map(t *testing.T) { tests := []struct { name string - id ID - from map[string]any - to ID + id *ID }{ { - name: Service, - id: ID{Descriptor: &ServiceID{}}, - from: map[string]any{"service_id": "<service_id>"}, - to: ID{Descriptor: &ServiceID{ServiceID: "<service_id>"}}, + name: "ServiceID", + id: &ID{Descriptor: &ServiceID{ServiceID: "<service_id>"}}, }, { - name: User, - id: ID{Descriptor: &UserID{}}, - from: map[string]any{"user_id": "<user_id>"}, - to: ID{Descriptor: &UserID{UserID: "<user_id>"}}, + name: "UserID", + id: &ID{Descriptor: &UserID{UserID: "<user_id>"}}, }, { - name: Organization, - id: ID{Descriptor: &OrganizationID{}}, - from: map[string]any{"organization_id": "<org_id>"}, - to: ID{Descriptor: &OrganizationID{OrganizationID: "<org_id>"}}, + name: "OrganizationID", + id: &ID{Descriptor: &OrganizationID{OrganizationID: "<org_id>"}}, }, { - name: Space, - id: ID{Descriptor: &SpaceID{}}, - from: map[string]any{"space_id": "<space_id>"}, - to: ID{Descriptor: &SpaceID{SpaceID: "<space_id>"}}, + name: "SpaceID", + id: &ID{Descriptor: &SpaceID{SpaceID: "<space_id>"}}, }, { - name: Client, - id: ID{Descriptor: &ClientID{}}, - from: map[string]any{"space_id": "<space_id>", "client_id": "<client_id>"}, - to: ID{Descriptor: &ClientID{ + name: "ClientID", + id: &ID{Descriptor: &ClientID{ SpaceID: SpaceID{SpaceID: "<space_id>"}, ClientID: "<client_id>", }}, }, { - name: Role, - id: ID{Descriptor: &RoleID{}}, - from: map[string]any{"space_id": "<space_id>", "role_id": "<role_id>"}, - to: ID{Descriptor: &RoleID{ + name: "RoleID", + id: &ID{Descriptor: &RoleID{ SpaceID: SpaceID{SpaceID: "<space_id>"}, RoleID: "<role_id>", }}, }, { - name: Environment, - id: ID{Descriptor: &EnvironmentID{}}, - from: map[string]any{"space_id": "<space_id>", "env_id": "<env_id>"}, - to: ID{Descriptor: &EnvironmentID{ + name: "EnvironmentID", + id: &ID{Descriptor: &EnvironmentID{ SpaceID: SpaceID{SpaceID: "<space_id>"}, EnvironmentID: "<env_id>", }}, }, { - name: Collection, - id: ID{Descriptor: &CollectionID{}}, - from: map[string]any{"space_id": "<space_id>", "env_id": "<env_id>", "col_id": "<collection_id>"}, - to: ID{Descriptor: &CollectionID{ + name: "CollectionID", + id: &ID{Descriptor: &CollectionID{ EnvironmentID: EnvironmentID{ SpaceID: SpaceID{SpaceID: "<space_id>"}, EnvironmentID: "<env_id>", @@ -243,10 +225,8 @@ func Test_Map(t *testing.T) { }}, }, { - name: Schema, - id: ID{Descriptor: &SchemaID{}}, - from: map[string]any{"space_id": "<space_id>", "env_id": "<env_id>", "collection_id": "<collection_id>"}, - to: ID{Descriptor: &SchemaID{ + name: "Schema ID", + id: &ID{Descriptor: &SchemaID{ EnvironmentID: EnvironmentID{ SpaceID: SpaceID{SpaceID: "<space_id>"}, EnvironmentID: "<env_id>", @@ -255,10 +235,8 @@ func Test_Map(t *testing.T) { }}, }, { - name: Item, - id: ID{Descriptor: &ItemID{}}, - from: map[string]any{"space_id": "<space_id>", "env_id": "<env_id>", "col_id": "<collection_id>", "item_id": "<item_id>"}, - to: ID{Descriptor: &ItemID{ + name: "ItemID", + id: &ID{Descriptor: &ItemID{ CollectionID: CollectionID{ EnvironmentID: EnvironmentID{ SpaceID: SpaceID{SpaceID: "<space_id>"}, @@ -270,10 +248,8 @@ func Test_Map(t *testing.T) { }}, }, { - name: Revision, - id: ID{Descriptor: &RevisionID{}}, - from: map[string]any{"space_id": "<space_id>", "env_id": "<env_id>", "col_id": "<collection_id>", "item_id": "<item_id>", "rev_id": "<rev_id>"}, - to: ID{Descriptor: &RevisionID{ + name: "RevisionID", + id: &ID{Descriptor: &RevisionID{ ItemID: ItemID{ CollectionID: CollectionID{ EnvironmentID: EnvironmentID{ @@ -288,10 +264,8 @@ func Test_Map(t *testing.T) { }}, }, { - name: Field, - id: ID{Descriptor: &FieldID{}}, - from: map[string]any{"space_id": "<space_id>", "env_id": "<env_id>", "col_id": "<collection_id>", "item_id": "<item_id>", "field_name": "<field_name>"}, - to: ID{Descriptor: &FieldID{ + name: "FieldID", + id: &ID{Descriptor: &FieldID{ ItemID: ItemID{ CollectionID: CollectionID{ EnvironmentID: EnvironmentID{ @@ -309,9 +283,9 @@ func Test_Map(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { v := tt.id - require.NoError(t, v.FromMap(tt.from)) - require.Equal(t, tt.to, v) - require.Equal(t, v.ToMap(), tt.from) + _ = v.FromMap(tt.id.ToMap()) + require.Equal(t, tt.id, v) + require.Equal(t, v.ToMap(), tt.id.ToMap()) }) } } diff --git a/id/json_test.go b/id/json_test.go index 83a444d1ebcbd6f2ed069c931d05a0dbb147e7a1..fac8151a552369ecf817368ebdd8c1a1dca2574b 100644 --- a/id/json_test.go +++ b/id/json_test.go @@ -11,73 +11,73 @@ import ( func TestID_MarshalJSON(t *testing.T) { tests := []struct { name string - ID ID + id ID want string }{ { - name: Organization, - ID: ID{Descriptor: &OrganizationID{OrganizationID: "1"}}, + name: "OrganizationID", + id: ID{Descriptor: &OrganizationID{OrganizationID: "1"}}, want: `"/orgs/1"`, }, { - name: User, - ID: ID{Descriptor: &UserID{UserID: "1"}}, + name: "UserID", + id: ID{Descriptor: &UserID{UserID: "1"}}, want: `"/users/1"`, }, { - name: Service, - ID: ID{Descriptor: &ServiceID{ServiceID: "1"}}, + name: "ServiceID", + id: ID{Descriptor: &ServiceID{ServiceID: "1"}}, want: `"/services/1"`, }, { - name: Space, - ID: ID{Descriptor: &SpaceID{SpaceID: "1"}}, + name: "SpaceID", + id: ID{Descriptor: &SpaceID{SpaceID: "1"}}, want: `"/spaces/1"`, }, { - name: Environment, - ID: ID{Descriptor: &EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}, + name: "EnvironmentID", + id: ID{Descriptor: &EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}, want: `"/spaces/1/envs/1"`, }, { - name: Client, - ID: ID{Descriptor: &ClientID{ClientID: "1", SpaceID: SpaceID{SpaceID: "1"}}}, + name: "ClientID", + id: ID{Descriptor: &ClientID{ClientID: "1", SpaceID: SpaceID{SpaceID: "1"}}}, want: `"/spaces/1/clients/1"`, }, { - name: Role, - ID: ID{Descriptor: &RoleID{RoleID: "1", SpaceID: SpaceID{SpaceID: "1"}}}, + name: "RoleID", + id: ID{Descriptor: &RoleID{RoleID: "1", SpaceID: SpaceID{SpaceID: "1"}}}, want: `"/spaces/1/roles/1"`, }, { - name: Collection, - ID: ID{Descriptor: &CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}, + name: "CollectionID", + id: ID{Descriptor: &CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}, want: `"/spaces/1/envs/1/cols/1"`, }, { - name: Schema, - ID: ID{Descriptor: &SchemaID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}, + name: "SchemaID", + id: ID{Descriptor: &SchemaID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}, want: `"/spaces/1/envs/1/schema/1"`, }, { - name: Item, - ID: ID{Descriptor: &ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}}, + name: "ItemID", + id: ID{Descriptor: &ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}}, want: `"/spaces/1/envs/1/cols/1/items/1"`, }, { - name: Revision, - ID: ID{Descriptor: &RevisionID{RevisionID: "1", ItemID: ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}}}, + name: "RevisionID", + id: ID{Descriptor: &RevisionID{RevisionID: "1", ItemID: ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}}}, want: `"/spaces/1/envs/1/cols/1/items/1/revs/1"`, }, { - name: Field, - ID: ID{Descriptor: &FieldID{FieldName: "1", ItemID: ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}}}, + name: "FieldID", + id: ID{Descriptor: &FieldID{FieldName: "1", ItemID: ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}}}, want: `"/spaces/1/envs/1/cols/1/items/1/fields/1"`, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - got, err := jsoniter.Marshal(&tt.ID) + got, err := jsoniter.Marshal(&tt.id) require.NoError(t, err) assert.Equal(t, tt.want, string(got)) }) @@ -91,62 +91,62 @@ func TestID_UnmarshalJSON(t *testing.T) { b []byte }{ { - id: Organization, + id: "OrganizationID", want: ID{Descriptor: &OrganizationID{OrganizationID: "1"}}, b: []byte(`"/orgs/1"`), }, { - id: User, + id: "UserID", want: ID{Descriptor: &UserID{UserID: "1"}}, b: []byte(`"/users/1"`), }, { - id: Service, + id: "ServiceID", want: ID{Descriptor: &ServiceID{ServiceID: "1"}}, b: []byte(`"/services/1"`), }, { - id: Space, + id: "SpaceID", want: ID{Descriptor: &SpaceID{SpaceID: "1"}}, b: []byte(`"/spaces/1"`), }, { - id: Environment, + id: "EnvironmentID", want: ID{Descriptor: &EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}, b: []byte(`"/spaces/1/envs/1"`), }, { - id: Client, + id: "ClientID", want: ID{Descriptor: &ClientID{ClientID: "1", SpaceID: SpaceID{SpaceID: "1"}}}, b: []byte(`"/spaces/1/clients/1"`), }, { - id: Role, + id: "RoleID", want: ID{Descriptor: &RoleID{RoleID: "1", SpaceID: SpaceID{SpaceID: "1"}}}, b: []byte(`"/spaces/1/roles/1"`), }, { - id: Collection, + id: "CollectionID", want: ID{Descriptor: &CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}, b: []byte(`"/spaces/1/envs/1/cols/1"`), }, { - id: Schema, + id: "SchemaID", want: ID{Descriptor: &SchemaID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}, b: []byte(`"/spaces/1/envs/1/schema/1"`), }, { - id: Item, + id: "ItemID", want: ID{Descriptor: &ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}}, b: []byte(`"/spaces/1/envs/1/cols/1/items/1"`), }, { - id: Revision, + id: "RevisionID", want: ID{Descriptor: &RevisionID{RevisionID: "1", ItemID: ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}}}, b: []byte(`"/spaces/1/envs/1/cols/1/items/1/revs/1"`), }, { - id: Field, + id: "FieldID", want: ID{Descriptor: &FieldID{FieldName: "1", ItemID: ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}}}, b: []byte(`"/spaces/1/envs/1/cols/1/items/1/fields/1"`), },