Skip to content

Commit

Permalink
Merge pull request #79 from dhruv-bansal/main
Browse files Browse the repository at this point in the history
metadata builder changes for missing fields
  • Loading branch information
denopink authored Jun 23, 2022
2 parents b27a3d2 + 8d02ce5 commit 1bdb169
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 2 deletions.
6 changes: 4 additions & 2 deletions wrpmeta/metadata.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,10 @@ func (b *builder) Apply(source Source, fields ...Field) Builder {

if present {
b.product[to] = value
} else if len(f.Default) > 0 {
b.product[to] = f.Default
} else {
if len(f.Default) > 0 {
b.product[to] = f.Default
}
b.allFieldsPresent = false
}
}
Expand Down
56 changes: 56 additions & 0 deletions wrpmeta/metadata_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,63 @@ func testBuilderSomeInitialFieldsAbsent(t *testing.T) {
assert.False(allPresent)
}

func testBuilderWithMissingField(t *testing.T) {
var (
assert = assert.New(t)
require = require.New(t)

source = SourceMap{
"key1": "value1",
"key2": 123,
"key3": -17.6,
"unused": "unused",
}

builder = NewBuilder()
)

require.NotNil(builder)

metadata, allPresent := builder.Apply(source,
Field{From: "key1"},
Field{From: "key2", To: "/key2"},
Field{From: "key3", To: "asdf", Default: "default"},
Field{From: "missing2", To: "/missing2"},
).Set("key4", "value4").Add(map[string]string{"key5": "value5"}, true).Build()

assert.Equal(
map[string]string{
"key1": "value1",
"/key2": "123",
"asdf": "-17.6",
"key4": "value4",
"key5": "value5",
},
metadata,
)

assert.False(allPresent)

metadata, allPresent = builder.Add(map[string]string{"key6": "value6"}, false).Build()

assert.Equal(
map[string]string{
"key1": "value1",
"/key2": "123",
"asdf": "-17.6",
"key4": "value4",
"key5": "value5",
"key6": "value6",
},
metadata,
)

assert.False(allPresent)

}

func TestBuilder(t *testing.T) {
t.Run("InitialFieldsPresent", testBuilderInitialFieldsPresent)
t.Run("SomeInitialFieldsAbsent", testBuilderSomeInitialFieldsAbsent)
t.Run("SomeInitialFieldsAbsent", testBuilderWithMissingField)
}

0 comments on commit 1bdb169

Please sign in to comment.