Skip to content

Commit

Permalink
Refactor/fix column diff new (#39)
Browse files Browse the repository at this point in the history
* Fix NewDropColumnDiff

* Fix NewMakeColumnNullableDiff and NewMakeColumnNotNullDiff
  • Loading branch information
davimnz authored Jun 7, 2022
1 parent a41ca73 commit 9621231
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 24 deletions.
12 changes: 6 additions & 6 deletions domain/column_diff.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ type DropColumnDiff struct {
column *Column
}

func NewDropColumnDiff(tableName string, columnName string) *DropColumnDiff {
return &DropColumnDiff{tableName: tableName, columnName: columnName}
func NewDropColumnDiff(tableName string, columnName string, column *Column) *DropColumnDiff {
return &DropColumnDiff{tableName: tableName, columnName: columnName, column: column}
}

func (d *DropColumnDiff) Up(deparser Deparser) string {
Expand All @@ -42,8 +42,8 @@ type MakeColumnNotNullDiff struct {
column *Column
}

func NewMakeColumnNotNullDiff(tableName string, columnName string) *MakeColumnNotNullDiff {
return &MakeColumnNotNullDiff{tableName: tableName, columnName: columnName}
func NewMakeColumnNotNullDiff(tableName string, columnName string, column *Column) *MakeColumnNotNullDiff {
return &MakeColumnNotNullDiff{tableName: tableName, columnName: columnName, column: column}
}

func (m *MakeColumnNotNullDiff) Up(deparser Deparser) string {
Expand All @@ -60,8 +60,8 @@ type MakeColumnNullableDiff struct {
column *Column
}

func NewMakeColumnNullableDiff(tableName string, columnName string) *MakeColumnNullableDiff {
return &MakeColumnNullableDiff{tableName: tableName, columnName: columnName}
func NewMakeColumnNullableDiff(tableName string, columnName string, column *Column) *MakeColumnNullableDiff {
return &MakeColumnNullableDiff{tableName: tableName, columnName: columnName, column: column}
}

func (m *MakeColumnNullableDiff) Up(deparser Deparser) string {
Expand Down
22 changes: 11 additions & 11 deletions domain/column_diff_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ var _ = Describe("Column Diff", func() {
)
When("Asked to go up", func() {
It("Calls Drop Column deparser", func() {
subject = domain.NewDropColumnDiff(tableName, columnName)
subject = domain.NewDropColumnDiff(tableName, columnName, column)

deparser.EXPECT().DropColumn(tableName, columnName).Return("FAKE DROP COLUMN")
result := subject.Up(deparser)
Expand All @@ -65,9 +65,9 @@ var _ = Describe("Column Diff", func() {
})
When("Asked to go down", func() {
It("Calls Drop Column deparser", func() {
subject = domain.NewDropColumnDiff(tableName, columnName)
subject = domain.NewDropColumnDiff(tableName, columnName, column)

deparser.EXPECT().AddColumn(tableName, columnName, nil).Return("FAKE CREATE COLUMN")
deparser.EXPECT().AddColumn(tableName, columnName, column).Return("FAKE CREATE COLUMN")
result := subject.Down(deparser)
Expect(result).To(Equal("FAKE CREATE COLUMN"))
})
Expand All @@ -80,18 +80,18 @@ var _ = Describe("Column Diff", func() {
)
When("Asked to go up", func() {
It("Calls Column Not Null deparser", func() {
subject = domain.NewMakeColumnNotNullDiff(tableName, columnName)
subject = domain.NewMakeColumnNotNullDiff(tableName, columnName, column)

deparser.EXPECT().MakeColumnNotNull(tableName, columnName, nil).Return("FAKE COLUMN NOT NULL")
deparser.EXPECT().MakeColumnNotNull(tableName, columnName, column).Return("FAKE COLUMN NOT NULL")
result := subject.Up(deparser)
Expect(result).To(Equal("FAKE COLUMN NOT NULL"))
})
})
When("Asked to go down", func() {
It("Calls Column Not Null deparser", func() {
subject = domain.NewMakeColumnNotNullDiff(tableName, columnName)
subject = domain.NewMakeColumnNotNullDiff(tableName, columnName, column)

deparser.EXPECT().MakeColumnNullable(tableName, columnName, nil).Return("FAKE COLUMN NULL")
deparser.EXPECT().MakeColumnNullable(tableName, columnName, column).Return("FAKE COLUMN NULL")
result := subject.Down(deparser)
Expect(result).To(Equal("FAKE COLUMN NULL"))
})
Expand All @@ -104,18 +104,18 @@ var _ = Describe("Column Diff", func() {
)
When("Asked to go up", func() {
It("Calls Column Nullable deparser", func() {
subject = domain.NewMakeColumnNullableDiff(tableName, columnName)
subject = domain.NewMakeColumnNullableDiff(tableName, columnName, column)

deparser.EXPECT().MakeColumnNullable(tableName, columnName, nil).Return("FAKE COLUMN NULL")
deparser.EXPECT().MakeColumnNullable(tableName, columnName, column).Return("FAKE COLUMN NULL")
result := subject.Up(deparser)
Expect(result).To(Equal("FAKE COLUMN NULL"))
})
})
When("Asked to go down", func() {
It("Calls Column Nullable deparser", func() {
subject = domain.NewMakeColumnNullableDiff(tableName, columnName)
subject = domain.NewMakeColumnNullableDiff(tableName, columnName, column)

deparser.EXPECT().MakeColumnNotNull(tableName, columnName, nil).Return("FAKE COLUMN NOT NULL")
deparser.EXPECT().MakeColumnNotNull(tableName, columnName, column).Return("FAKE COLUMN NOT NULL")
result := subject.Down(deparser)
Expect(result).To(Equal("FAKE COLUMN NOT NULL"))
})
Expand Down
8 changes: 4 additions & 4 deletions domain/diff.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ func (t *Table) Diff(originalTable *Table) DiffDeque {
}
}

for columnName := range originalTable.Columns {
for columnName, column := range originalTable.Columns {
if _, ok := t.Columns[columnName]; !ok {
diffsQueue.Add(NewDropColumnDiff(t.Name, columnName))
diffsQueue.Add(NewDropColumnDiff(t.Name, columnName, column))
}
}

Expand All @@ -52,9 +52,9 @@ func (c *Column) Diff(table *Table, columnName string, originalColumn *Column) D
column := table.Columns[columnName]
if column.IsNotNull != originalColumn.IsNotNull {
if column.IsNotNull {
diffsQueue.Add(NewMakeColumnNotNullDiff(table.Name, columnName))
diffsQueue.Add(NewMakeColumnNotNullDiff(table.Name, columnName, column))
} else {
diffsQueue.Add(NewMakeColumnNullableDiff(table.Name, columnName))
diffsQueue.Add(NewMakeColumnNullableDiff(table.Name, columnName, column))
}
}
return diffsQueue
Expand Down
6 changes: 3 additions & 3 deletions domain/diff_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ var _ = Describe("Schema Diff", func() {
Expect(diffQueue).To(HaveLen(4))
Expect(diffQueue).To(ContainElements(
domain.NewDropTableDiff(domain.NewTable("old_table", map[string]*domain.Column{})),
domain.NewDropColumnDiff("kept_table", "old_column"),
domain.NewDropColumnDiff("kept_table", "old_column", &domain.Column{}),
domain.NewCreateTableDiff(domain.NewTable("new_table", map[string]*domain.Column{})),
domain.NewCreateColumnDiff("kept_table", "new_column", &domain.Column{}),
))
Expand Down Expand Up @@ -65,7 +65,7 @@ var _ = Describe("Schema Diff", func() {
diffQueue := newSchema.Diff(oldSchema)
Expect(diffQueue).To(HaveLen(1))
Expect(diffQueue).To(ContainElements(
domain.NewMakeColumnNotNullDiff("table", "column"),
domain.NewMakeColumnNotNullDiff("table", "column", &domain.Column{IsNotNull: true}),
))
})
})
Expand All @@ -92,7 +92,7 @@ var _ = Describe("Schema Diff", func() {
diffQueue := newSchema.Diff(oldSchema)
Expect(diffQueue).To(HaveLen(1))
Expect(diffQueue).To(ContainElements(
domain.NewMakeColumnNullableDiff("table", "column"),
domain.NewMakeColumnNullableDiff("table", "column", &domain.Column{IsNotNull: false}),
))
})
})
Expand Down

0 comments on commit 9621231

Please sign in to comment.