|
|
@@ -31,74 +31,61 @@ func TestDiff(t *testing.T) {
|
|
|
cases := map[string]struct {
|
|
|
inputAssetsBefore []Asset
|
|
|
inputAssetsAfter []Asset
|
|
|
- test []Node
|
|
|
- costChange []int
|
|
|
expected map[string]Diff[Asset]
|
|
|
}{
|
|
|
"added node": {
|
|
|
inputAssetsBefore: []Asset{node1, node2},
|
|
|
inputAssetsAfter: []Asset{node1, node2, node3},
|
|
|
- costChange: []int{},
|
|
|
expected: map[string]Diff[Asset]{node3Key: {node3, DiffAdded}},
|
|
|
},
|
|
|
"multiple adds": {
|
|
|
inputAssetsBefore: []Asset{node1, node2},
|
|
|
inputAssetsAfter: []Asset{node1, node2, node3, node4},
|
|
|
- costChange: []int{},
|
|
|
expected: map[string]Diff[Asset]{node3Key: {node3, DiffAdded}, node4Key: {node4, DiffAdded}},
|
|
|
},
|
|
|
"removed node": {
|
|
|
inputAssetsBefore: []Asset{node1, node2},
|
|
|
inputAssetsAfter: []Asset{node2},
|
|
|
- costChange: []int{},
|
|
|
expected: map[string]Diff[Asset]{node1Key: {node1, DiffRemoved}},
|
|
|
},
|
|
|
"multiple removes": {
|
|
|
inputAssetsBefore: []Asset{node1, node2, node3},
|
|
|
inputAssetsAfter: []Asset{node2},
|
|
|
- costChange: []int{},
|
|
|
expected: map[string]Diff[Asset]{node1Key: {node1, DiffRemoved}, node3Key: {node3, DiffRemoved}},
|
|
|
},
|
|
|
"remove all": {
|
|
|
inputAssetsBefore: []Asset{node1, node2},
|
|
|
inputAssetsAfter: []Asset{},
|
|
|
- costChange: []int{},
|
|
|
expected: map[string]Diff[Asset]{node1Key: {node1, DiffRemoved}, node2Key: {node2, DiffRemoved}},
|
|
|
},
|
|
|
"add and remove": {
|
|
|
inputAssetsBefore: []Asset{node1, node2},
|
|
|
inputAssetsAfter: []Asset{node2, node3},
|
|
|
- costChange: []int{},
|
|
|
expected: map[string]Diff[Asset]{node1Key: {node1, DiffRemoved}, node3Key: {node3, DiffAdded}},
|
|
|
},
|
|
|
"no change": {
|
|
|
inputAssetsBefore: []Asset{node1, node2},
|
|
|
inputAssetsAfter: []Asset{node1, node2},
|
|
|
- costChange: []int{},
|
|
|
expected: map[string]Diff[Asset]{},
|
|
|
},
|
|
|
"order switch": {
|
|
|
inputAssetsBefore: []Asset{node2, node1},
|
|
|
inputAssetsAfter: []Asset{node1, node2},
|
|
|
- costChange: []int{},
|
|
|
expected: map[string]Diff[Asset]{},
|
|
|
},
|
|
|
"disk add": {
|
|
|
inputAssetsBefore: []Asset{disk1, node1},
|
|
|
inputAssetsAfter: []Asset{disk1, node1, disk2},
|
|
|
- costChange: []int{},
|
|
|
expected: map[string]Diff[Asset]{disk2Key: {disk2, DiffAdded}},
|
|
|
},
|
|
|
"disk and node add": {
|
|
|
inputAssetsBefore: []Asset{disk1, node1},
|
|
|
inputAssetsAfter: []Asset{disk1, node1, disk2, node2},
|
|
|
- costChange: []int{},
|
|
|
expected: map[string]Diff[Asset]{disk2Key: {disk2, DiffAdded}, node2Key: {node2, DiffAdded}},
|
|
|
},
|
|
|
"disk and node removed": {
|
|
|
inputAssetsBefore: []Asset{disk1, node1, disk2, node2},
|
|
|
inputAssetsAfter: []Asset{disk2, node2},
|
|
|
- costChange: []int{},
|
|
|
expected: map[string]Diff[Asset]{disk1Key: {disk1, DiffRemoved}, node1Key: {node1, DiffRemoved}},
|
|
|
},
|
|
|
"cost change": {
|