From ba32357f7451efe83dbbb17640aed33a395ef896 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Thu, 12 Sep 2024 14:39:38 -0400 Subject: [PATCH] more renames --- schema/diff/diff.go | 28 +++++++++---------- schema/diff/diff_test.go | 20 ++++++------- ...ject_type_diff.go => state_object_diff.go} | 12 ++++---- ...diff_test.go => state_object_diff_test.go} | 28 +++++++++---------- schema/testing/module_schema.go | 2 +- schema/testing/object.go | 14 +++++----- schema/testing/object_test.go | 6 ++-- schema/testing/statesim/object_coll.go | 4 +-- 8 files changed, 57 insertions(+), 57 deletions(-) rename schema/diff/{object_type_diff.go => state_object_diff.go} (91%) rename schema/diff/{object_type_diff_test.go => state_object_diff_test.go} (90%) diff --git a/schema/diff/diff.go b/schema/diff/diff.go index 014c86dd986b..f521e7cb7a7b 100644 --- a/schema/diff/diff.go +++ b/schema/diff/diff.go @@ -4,14 +4,14 @@ import "cosmossdk.io/schema" // ModuleSchemaDiff represents the difference between two module schemas. type ModuleSchemaDiff struct { - // AddedObjectTypes is a list of object types that were added. - AddedObjectTypes []schema.StateObjectType + // AddedStateObjectTypes is a list of object types that were added. + AddedStateObjectTypes []schema.StateObjectType - // ChangedObjectTypes is a list of object types that were changed. - ChangedObjectTypes []ObjectTypeDiff + // ChangedStateObjectTypes is a list of object types that were changed. + ChangedStateObjectTypes []StateObjectTypeDiff - // RemovedObjectTypes is a list of object types that were removed. - RemovedObjectTypes []schema.StateObjectType + // RemovedStateObjectTypes is a list of object types that were removed. + RemovedStateObjectTypes []schema.StateObjectType // AddedEnumTypes is a list of enum types that were added. AddedEnumTypes []schema.EnumType @@ -44,12 +44,12 @@ func CompareModuleSchemas(oldSchema, newSchema schema.ModuleSchema) ModuleSchema oldSchema.StateObjectTypes(func(oldObj schema.StateObjectType) bool { newObj, found := newSchema.LookupStateObjectType(oldObj.Name) if !found { - diff.RemovedObjectTypes = append(diff.RemovedObjectTypes, oldObj) + diff.RemovedStateObjectTypes = append(diff.RemovedStateObjectTypes, oldObj) return true } objDiff := compareObjectType(oldObj, newObj) if !objDiff.Empty() { - diff.ChangedObjectTypes = append(diff.ChangedObjectTypes, objDiff) + diff.ChangedStateObjectTypes = append(diff.ChangedStateObjectTypes, objDiff) } return true }) @@ -57,7 +57,7 @@ func CompareModuleSchemas(oldSchema, newSchema schema.ModuleSchema) ModuleSchema newSchema.StateObjectTypes(func(newObj schema.StateObjectType) bool { _, found := oldSchema.LookupStateObjectType(newObj.TypeName()) if !found { - diff.AddedObjectTypes = append(diff.AddedObjectTypes, newObj) + diff.AddedStateObjectTypes = append(diff.AddedStateObjectTypes, newObj) } return true }) @@ -87,9 +87,9 @@ func CompareModuleSchemas(oldSchema, newSchema schema.ModuleSchema) ModuleSchema } func (m ModuleSchemaDiff) Empty() bool { - return len(m.AddedObjectTypes) == 0 && - len(m.ChangedObjectTypes) == 0 && - len(m.RemovedObjectTypes) == 0 && + return len(m.AddedStateObjectTypes) == 0 && + len(m.ChangedStateObjectTypes) == 0 && + len(m.RemovedStateObjectTypes) == 0 && len(m.AddedEnumTypes) == 0 && len(m.ChangedEnumTypes) == 0 && len(m.RemovedEnumTypes) == 0 @@ -102,11 +102,11 @@ func (m ModuleSchemaDiff) Empty() bool { func (m ModuleSchemaDiff) HasCompatibleChanges() bool { // object and enum types can be added but not removed // changed object and enum types must have compatible changes - if len(m.RemovedObjectTypes) != 0 || len(m.RemovedEnumTypes) != 0 { + if len(m.RemovedStateObjectTypes) != 0 || len(m.RemovedEnumTypes) != 0 { return false } - for _, objectType := range m.ChangedObjectTypes { + for _, objectType := range m.ChangedStateObjectTypes { if !objectType.HasCompatibleChanges() { return false } diff --git a/schema/diff/diff_test.go b/schema/diff/diff_test.go index 4dcb809a52cc..2785afc575e3 100644 --- a/schema/diff/diff_test.go +++ b/schema/diff/diff_test.go @@ -38,7 +38,7 @@ func TestCompareModuleSchemas(t *testing.T) { KeyFields: []schema.Field{{Name: "key1", Kind: schema.StringKind}}, }), diff: ModuleSchemaDiff{ - AddedObjectTypes: []schema.StateObjectType{ + AddedStateObjectTypes: []schema.StateObjectType{ { Name: "object1", KeyFields: []schema.Field{{Name: "key1", Kind: schema.StringKind}}, @@ -55,7 +55,7 @@ func TestCompareModuleSchemas(t *testing.T) { }), newSchema: requireModuleSchema(t), diff: ModuleSchemaDiff{ - RemovedObjectTypes: []schema.StateObjectType{ + RemovedStateObjectTypes: []schema.StateObjectType{ { Name: "object1", KeyFields: []schema.Field{{Name: "key1", Kind: schema.StringKind}}, @@ -75,7 +75,7 @@ func TestCompareModuleSchemas(t *testing.T) { KeyFields: []schema.Field{{Name: "key1", Kind: schema.StringKind}, {Name: "key2", Kind: schema.StringKind}}, }), diff: ModuleSchemaDiff{ - ChangedObjectTypes: []ObjectTypeDiff{ + ChangedStateObjectTypes: []StateObjectTypeDiff{ { Name: "object1", KeyFieldsDiff: FieldsDiff{ @@ -100,7 +100,7 @@ func TestCompareModuleSchemas(t *testing.T) { ValueFields: []schema.Field{{Name: "value1", Kind: schema.StringKind, Nullable: true}}, }), diff: ModuleSchemaDiff{ - ChangedObjectTypes: []ObjectTypeDiff{ + ChangedStateObjectTypes: []StateObjectTypeDiff{ { Name: "object1", ValueFieldsDiff: FieldsDiff{ @@ -123,7 +123,7 @@ func TestCompareModuleSchemas(t *testing.T) { ValueFields: []schema.Field{{Name: "value1", Kind: schema.StringKind}}, }), diff: ModuleSchemaDiff{ - ChangedObjectTypes: []ObjectTypeDiff{ + ChangedStateObjectTypes: []StateObjectTypeDiff{ { Name: "object1", ValueFieldsDiff: FieldsDiff{ @@ -145,7 +145,7 @@ func TestCompareModuleSchemas(t *testing.T) { KeyFields: []schema.Field{{Name: "key2", Kind: schema.StringKind}, {Name: "key1", Kind: schema.StringKind}}, }), diff: ModuleSchemaDiff{ - ChangedObjectTypes: []ObjectTypeDiff{ + ChangedStateObjectTypes: []StateObjectTypeDiff{ { Name: "object1", KeyFieldsDiff: FieldsDiff{ @@ -177,7 +177,7 @@ func TestCompareModuleSchemas(t *testing.T) { }, schema.EnumType{Name: "enum1", Values: []schema.EnumValueDefinition{{Name: "a", Value: 1}, {Name: "b", Value: 2}}}), diff: ModuleSchemaDiff{ - ChangedObjectTypes: []ObjectTypeDiff{ + ChangedStateObjectTypes: []StateObjectTypeDiff{ { Name: "object1", ValueFieldsDiff: FieldsDiff{ @@ -218,7 +218,7 @@ func TestCompareModuleSchemas(t *testing.T) { KeyFields: []schema.Field{{Name: "key1", Kind: schema.Int32Kind}}, }), diff: ModuleSchemaDiff{ - ChangedObjectTypes: []ObjectTypeDiff{ + ChangedStateObjectTypes: []StateObjectTypeDiff{ { Name: "object1", ValueFieldsDiff: FieldsDiff{ @@ -291,13 +291,13 @@ func TestCompareModuleSchemas(t *testing.T) { schema.EnumType{Name: "foo", Values: []schema.EnumValueDefinition{{Name: "a", Value: 1}}}, ), diff: ModuleSchemaDiff{ - RemovedObjectTypes: []schema.StateObjectType{ + RemovedStateObjectTypes: []schema.StateObjectType{ { Name: "foo", KeyFields: []schema.Field{{Name: "key1", Kind: schema.EnumKind, ReferencedType: "bar"}}, }, }, - AddedObjectTypes: []schema.StateObjectType{ + AddedStateObjectTypes: []schema.StateObjectType{ { Name: "bar", KeyFields: []schema.Field{{Name: "key1", Kind: schema.EnumKind, ReferencedType: "foo"}}, diff --git a/schema/diff/object_type_diff.go b/schema/diff/state_object_diff.go similarity index 91% rename from schema/diff/object_type_diff.go rename to schema/diff/state_object_diff.go index e524dc0f63b8..02c2d7bd46b4 100644 --- a/schema/diff/object_type_diff.go +++ b/schema/diff/state_object_diff.go @@ -2,10 +2,10 @@ package diff import "cosmossdk.io/schema" -// ObjectTypeDiff represents the difference between two object types. +// StateObjectTypeDiff represents the difference between two object types. // The Empty method of KeyFieldsDiff and ValueFieldsDiff can be used to determine // if there were any changes to the key fields or value fields. -type ObjectTypeDiff struct { +type StateObjectTypeDiff struct { // Name is the name of the object type. Name string @@ -39,8 +39,8 @@ type FieldsDiff struct { NewOrder []string } -func compareObjectType(oldObj, newObj schema.StateObjectType) ObjectTypeDiff { - diff := ObjectTypeDiff{ +func compareObjectType(oldObj, newObj schema.StateObjectType) StateObjectTypeDiff { + diff := StateObjectTypeDiff{ Name: oldObj.TypeName(), } @@ -101,13 +101,13 @@ func compareFields(oldFields, newFields []schema.Field) FieldsDiff { } // Empty returns true if the object type diff has no changes. -func (o ObjectTypeDiff) Empty() bool { +func (o StateObjectTypeDiff) Empty() bool { return o.KeyFieldsDiff.Empty() && o.ValueFieldsDiff.Empty() } // HasCompatibleChanges returns true if the diff contains only compatible changes. // The only supported compatible change is adding nullable value fields. -func (o ObjectTypeDiff) HasCompatibleChanges() bool { +func (o StateObjectTypeDiff) HasCompatibleChanges() bool { if !o.KeyFieldsDiff.Empty() { return false } diff --git a/schema/diff/object_type_diff_test.go b/schema/diff/state_object_diff_test.go similarity index 90% rename from schema/diff/object_type_diff_test.go rename to schema/diff/state_object_diff_test.go index 5ef9dba1f2db..bf708d604ded 100644 --- a/schema/diff/object_type_diff_test.go +++ b/schema/diff/state_object_diff_test.go @@ -12,8 +12,8 @@ func Test_objectTypeDiff(t *testing.T) { name string oldType schema.StateObjectType newType schema.StateObjectType - diff ObjectTypeDiff - trueF func(ObjectTypeDiff) bool + diff StateObjectTypeDiff + trueF func(StateObjectTypeDiff) bool hasCompatibleChanges bool }{ { @@ -24,8 +24,8 @@ func Test_objectTypeDiff(t *testing.T) { newType: schema.StateObjectType{ KeyFields: []schema.Field{{Name: "id", Kind: schema.Int32Kind}}, }, - diff: ObjectTypeDiff{}, - trueF: ObjectTypeDiff.Empty, + diff: StateObjectTypeDiff{}, + trueF: StateObjectTypeDiff.Empty, hasCompatibleChanges: true, }, { @@ -36,7 +36,7 @@ func Test_objectTypeDiff(t *testing.T) { newType: schema.StateObjectType{ KeyFields: []schema.Field{{Name: "id", Kind: schema.StringKind}}, }, - diff: ObjectTypeDiff{ + diff: StateObjectTypeDiff{ KeyFieldsDiff: FieldsDiff{ Changed: []FieldDiff{ { @@ -47,7 +47,7 @@ func Test_objectTypeDiff(t *testing.T) { }, }, }, - trueF: func(d ObjectTypeDiff) bool { return !d.KeyFieldsDiff.Empty() }, + trueF: func(d StateObjectTypeDiff) bool { return !d.KeyFieldsDiff.Empty() }, hasCompatibleChanges: false, }, { @@ -58,7 +58,7 @@ func Test_objectTypeDiff(t *testing.T) { newType: schema.StateObjectType{ ValueFields: []schema.Field{{Name: "name", Kind: schema.Int32Kind}}, }, - diff: ObjectTypeDiff{ + diff: StateObjectTypeDiff{ ValueFieldsDiff: FieldsDiff{ Changed: []FieldDiff{ { @@ -69,7 +69,7 @@ func Test_objectTypeDiff(t *testing.T) { }, }, }, - trueF: func(d ObjectTypeDiff) bool { return !d.ValueFieldsDiff.Empty() }, + trueF: func(d StateObjectTypeDiff) bool { return !d.ValueFieldsDiff.Empty() }, hasCompatibleChanges: false, }, { @@ -80,12 +80,12 @@ func Test_objectTypeDiff(t *testing.T) { newType: schema.StateObjectType{ ValueFields: []schema.Field{{Name: "id", Kind: schema.Int32Kind}, {Name: "name", Kind: schema.StringKind, Nullable: true}}, }, - diff: ObjectTypeDiff{ + diff: StateObjectTypeDiff{ ValueFieldsDiff: FieldsDiff{ Added: []schema.Field{{Name: "name", Kind: schema.StringKind, Nullable: true}}, }, }, - trueF: func(d ObjectTypeDiff) bool { return !d.ValueFieldsDiff.Empty() }, + trueF: func(d StateObjectTypeDiff) bool { return !d.ValueFieldsDiff.Empty() }, hasCompatibleChanges: true, }, { @@ -96,12 +96,12 @@ func Test_objectTypeDiff(t *testing.T) { newType: schema.StateObjectType{ ValueFields: []schema.Field{{Name: "id", Kind: schema.Int32Kind}, {Name: "name", Kind: schema.StringKind}}, }, - diff: ObjectTypeDiff{ + diff: StateObjectTypeDiff{ ValueFieldsDiff: FieldsDiff{ Added: []schema.Field{{Name: "name", Kind: schema.StringKind}}, }, }, - trueF: func(d ObjectTypeDiff) bool { return !d.ValueFieldsDiff.Empty() }, + trueF: func(d StateObjectTypeDiff) bool { return !d.ValueFieldsDiff.Empty() }, hasCompatibleChanges: false, }, { @@ -114,7 +114,7 @@ func Test_objectTypeDiff(t *testing.T) { KeyFields: []schema.Field{{Name: "name", Kind: schema.StringKind}, {Name: "id", Kind: schema.Int32Kind}}, ValueFields: []schema.Field{{Name: "y", Kind: schema.StringKind}, {Name: "x", Kind: schema.Int32Kind}}, }, - diff: ObjectTypeDiff{ + diff: StateObjectTypeDiff{ KeyFieldsDiff: FieldsDiff{ OldOrder: []string{"id", "name"}, NewOrder: []string{"name", "id"}, @@ -124,7 +124,7 @@ func Test_objectTypeDiff(t *testing.T) { NewOrder: []string{"y", "x"}, }, }, - trueF: func(d ObjectTypeDiff) bool { return !d.KeyFieldsDiff.Empty() && !d.ValueFieldsDiff.Empty() }, + trueF: func(d StateObjectTypeDiff) bool { return !d.KeyFieldsDiff.Empty() && !d.ValueFieldsDiff.Empty() }, hasCompatibleChanges: false, }, } diff --git a/schema/testing/module_schema.go b/schema/testing/module_schema.go index c874ac73a9f1..6c480298ea43 100644 --- a/schema/testing/module_schema.go +++ b/schema/testing/module_schema.go @@ -16,7 +16,7 @@ func ModuleSchemaGen() *rapid.Generator[schema.ModuleSchema] { t.Fatal(err) } - objectTypes := distinctTypes(ObjectTypeGen(tempSchema)).Draw(t, "objectTypes") + objectTypes := distinctTypes(StateObjectTypeGen(tempSchema)).Draw(t, "objectTypes") allTypes := append(enumTypes, objectTypes...) modSchema, err := schema.CompileModuleSchema(allTypes...) diff --git a/schema/testing/object.go b/schema/testing/object.go index 1063afa1e99e..f6c6c81cba00 100644 --- a/schema/testing/object.go +++ b/schema/testing/object.go @@ -7,8 +7,8 @@ import ( "cosmossdk.io/schema" ) -// ObjectTypeGen generates random StateObjectType's based on the validity criteria of object types. -func ObjectTypeGen(typeSet schema.TypeSet) *rapid.Generator[schema.StateObjectType] { +// StateObjectTypeGen generates random StateObjectType's based on the validity criteria of object types. +func StateObjectTypeGen(typeSet schema.TypeSet) *rapid.Generator[schema.StateObjectType] { keyFieldsGen := rapid.SliceOfNDistinct(KeyFieldGen(typeSet), 1, 6, func(f schema.Field) string { return f.Name }) @@ -55,14 +55,14 @@ func hasDuplicateFieldNames(typeNames map[string]bool, fields []schema.Field) bo return false } -// ObjectInsertGen generates object updates that are valid for insertion. -func ObjectInsertGen(objectType schema.StateObjectType, typeSet schema.TypeSet) *rapid.Generator[schema.StateObjectUpdate] { - return ObjectUpdateGen(objectType, nil, typeSet) +// StateObjectInsertGen generates object updates that are valid for insertion. +func StateObjectInsertGen(objectType schema.StateObjectType, typeSet schema.TypeSet) *rapid.Generator[schema.StateObjectUpdate] { + return StateObjectUpdateGen(objectType, nil, typeSet) } -// ObjectUpdateGen generates object updates that are valid for updates using the provided state map as a source +// StateObjectUpdateGen generates object updates that are valid for updates using the provided state map as a source // of valid existing keys. -func ObjectUpdateGen(objectType schema.StateObjectType, state *btree.Map[string, schema.StateObjectUpdate], sch schema.TypeSet) *rapid.Generator[schema.StateObjectUpdate] { +func StateObjectUpdateGen(objectType schema.StateObjectType, state *btree.Map[string, schema.StateObjectUpdate], sch schema.TypeSet) *rapid.Generator[schema.StateObjectUpdate] { keyGen := ObjectKeyGen(objectType.KeyFields, sch).Filter(func(key interface{}) bool { // filter out keys that exist in the state if state != nil { diff --git a/schema/testing/object_test.go b/schema/testing/object_test.go index b28ca8b2d6cf..539cb87fe567 100644 --- a/schema/testing/object_test.go +++ b/schema/testing/object_test.go @@ -9,16 +9,16 @@ import ( func TestObject(t *testing.T) { rapid.Check(t, func(t *rapid.T) { - objectType := ObjectTypeGen(testEnumSchema).Draw(t, "object") + objectType := StateObjectTypeGen(testEnumSchema).Draw(t, "object") require.NoError(t, objectType.Validate(testEnumSchema)) }) } func TestObjectUpdate(t *testing.T) { rapid.Check(t, func(t *rapid.T) { - objectType := ObjectTypeGen(testEnumSchema).Draw(t, "object") + objectType := StateObjectTypeGen(testEnumSchema).Draw(t, "object") require.NoError(t, objectType.Validate(testEnumSchema)) - update := ObjectInsertGen(objectType, testEnumSchema).Draw(t, "update") + update := StateObjectInsertGen(objectType, testEnumSchema).Draw(t, "update") require.NoError(t, objectType.ValidateObjectUpdate(update, testEnumSchema)) }) } diff --git a/schema/testing/statesim/object_coll.go b/schema/testing/statesim/object_coll.go index 2f5c046ff206..79434c7c2d8d 100644 --- a/schema/testing/statesim/object_coll.go +++ b/schema/testing/statesim/object_coll.go @@ -10,7 +10,7 @@ import ( schematesting "cosmossdk.io/schema/testing" ) -// ObjectCollection is a collection of objects of a specific type for testing purposes. +// ObjectCollection is a collection of state objects of a specific type for testing purposes. type ObjectCollection struct { options Options objectType schema.StateObjectType @@ -23,7 +23,7 @@ type ObjectCollection struct { // NewObjectCollection creates a new ObjectCollection for the given object type. func NewObjectCollection(objectType schema.StateObjectType, options Options, typeSet schema.TypeSet) *ObjectCollection { objects := &btree.Map[string, schema.StateObjectUpdate]{} - updateGen := schematesting.ObjectUpdateGen(objectType, objects, typeSet) + updateGen := schematesting.StateObjectUpdateGen(objectType, objects, typeSet) valueFieldIndices := make(map[string]int, len(objectType.ValueFields)) for i, field := range objectType.ValueFields { valueFieldIndices[field.Name] = i