Skip to content

Commit 4f9ad00

Browse files
authored
Merge pull request #236 from reedom/feature/fieldmap-set
Add FieldMap.{SetInt, SetString}
2 parents ad0acfd + 63468a6 commit 4f9ad00

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

field_map.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,16 @@ func (m FieldMap) SetField(tag Tag, field FieldValueWriter) FieldMap {
113113
return m
114114
}
115115

116+
//SetInt is a SetField wrapper for int fields
117+
func (m FieldMap) SetInt(tag Tag, value int) FieldMap {
118+
return m.SetField(tag, FIXInt(value))
119+
}
120+
121+
//SetString is a SetField wrapper for string fields
122+
func (m FieldMap) SetString(tag Tag, value string) FieldMap {
123+
return m.SetField(tag, FIXString(value))
124+
}
125+
116126
//Clear purges all fields from field map
117127
func (m *FieldMap) Clear() {
118128
m.tagLookup = make(map[Tag]TagValues)

field_map_test.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,37 @@ func TestFieldMap_Total(t *testing.T) {
8484
t.Error("Total should includes all fields but checkSum- got ", fMap.total())
8585
}
8686
}
87+
88+
func TestFieldMap_TypedSetAndGet(t *testing.T) {
89+
var fMap FieldMap
90+
fMap.init()
91+
92+
fMap.SetString(1, "hello")
93+
fMap.SetInt(2, 256)
94+
95+
s, err := fMap.GetString(1)
96+
if err != nil {
97+
t.Error("Unexpected Error", err)
98+
} else if s != "hello" {
99+
t.Errorf("Expected %v got %v", "hello", s)
100+
}
101+
102+
i, err := fMap.GetInt(2)
103+
if err != nil {
104+
t.Error("Unexpected Error", err)
105+
} else if i != 256 {
106+
t.Errorf("Expected %v got %v", 256, i)
107+
}
108+
109+
_, err = fMap.GetInt(1)
110+
if err == nil {
111+
t.Error("Type mismatch should occur error but nil")
112+
}
113+
114+
s, err = fMap.GetString(2)
115+
if err != nil {
116+
t.Error("Type mismatch should occur error but nil")
117+
} else if s != "256" {
118+
t.Errorf("Expected %v got %v", "256", s)
119+
}
120+
}

0 commit comments

Comments
 (0)