diff --git a/constants.go b/constants.go
index 6233d5f..732aada 100644
--- a/constants.go
+++ b/constants.go
@@ -69,11 +69,11 @@ func (e *ofxVersion) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
return e.FromString(value)
}
-func (e *ofxVersion) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e ofxVersion) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(ofxVersions[*e-1], start)
+ enc.EncodeElement(ofxVersions[e-1], start)
return nil
}
@@ -137,11 +137,11 @@ func (e *acctType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *acctType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e acctType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(acctTypes[*e-1], start)
+ enc.EncodeElement(acctTypes[e-1], start)
return nil
}
@@ -218,11 +218,11 @@ func (e *trnType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *trnType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e trnType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(trnTypes[*e-1], start)
+ enc.EncodeElement(trnTypes[e-1], start)
return nil
}
@@ -284,11 +284,11 @@ func (e *imageType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *imageType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e imageType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(imageTypes[*e-1], start)
+ enc.EncodeElement(imageTypes[e-1], start)
return nil
}
@@ -350,11 +350,11 @@ func (e *imageRefType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) erro
return e.FromString(value)
}
-func (e *imageRefType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e imageRefType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(imageRefTypes[*e-1], start)
+ enc.EncodeElement(imageRefTypes[e-1], start)
return nil
}
@@ -416,11 +416,11 @@ func (e *checkSup) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *checkSup) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e checkSup) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(checkSups[*e-1], start)
+ enc.EncodeElement(checkSups[e-1], start)
return nil
}
@@ -481,11 +481,11 @@ func (e *correctAction) UnmarshalXML(d *xml.Decoder, start xml.StartElement) err
return e.FromString(value)
}
-func (e *correctAction) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e correctAction) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(correctActions[*e-1], start)
+ enc.EncodeElement(correctActions[e-1], start)
return nil
}
@@ -547,11 +547,11 @@ func (e *balType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *balType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e balType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(balTypes[*e-1], start)
+ enc.EncodeElement(balTypes[e-1], start)
return nil
}
@@ -617,11 +617,11 @@ func (e *inv401kSource) UnmarshalXML(d *xml.Decoder, start xml.StartElement) err
return e.FromString(value)
}
-func (e *inv401kSource) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e inv401kSource) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(inv401kSources[*e-1], start)
+ enc.EncodeElement(inv401kSources[e-1], start)
return nil
}
@@ -684,11 +684,11 @@ func (e *subAcctType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
return e.FromString(value)
}
-func (e *subAcctType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e subAcctType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(subAcctTypes[*e-1], start)
+ enc.EncodeElement(subAcctTypes[e-1], start)
return nil
}
@@ -749,11 +749,11 @@ func (e *buyType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *buyType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e buyType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(buyTypes[*e-1], start)
+ enc.EncodeElement(buyTypes[e-1], start)
return nil
}
@@ -815,11 +815,11 @@ func (e *optAction) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *optAction) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e optAction) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(optActions[*e-1], start)
+ enc.EncodeElement(optActions[e-1], start)
return nil
}
@@ -880,11 +880,11 @@ func (e *tferAction) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
return e.FromString(value)
}
-func (e *tferAction) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e tferAction) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(tferActions[*e-1], start)
+ enc.EncodeElement(tferActions[e-1], start)
return nil
}
@@ -945,11 +945,11 @@ func (e *posType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *posType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e posType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(posTypes[*e-1], start)
+ enc.EncodeElement(posTypes[e-1], start)
return nil
}
@@ -1010,11 +1010,11 @@ func (e *secured) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *secured) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e secured) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(secureds[*e-1], start)
+ enc.EncodeElement(secureds[e-1], start)
return nil
}
@@ -1076,11 +1076,11 @@ func (e *duration) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *duration) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e duration) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(durations[*e-1], start)
+ enc.EncodeElement(durations[e-1], start)
return nil
}
@@ -1142,11 +1142,11 @@ func (e *restriction) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
return e.FromString(value)
}
-func (e *restriction) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e restriction) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(restrictions[*e-1], start)
+ enc.EncodeElement(restrictions[e-1], start)
return nil
}
@@ -1207,11 +1207,11 @@ func (e *unitType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *unitType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e unitType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(unitTypes[*e-1], start)
+ enc.EncodeElement(unitTypes[e-1], start)
return nil
}
@@ -1272,11 +1272,11 @@ func (e *optBuyType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
return e.FromString(value)
}
-func (e *optBuyType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e optBuyType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(optBuyTypes[*e-1], start)
+ enc.EncodeElement(optBuyTypes[e-1], start)
return nil
}
@@ -1337,11 +1337,11 @@ func (e *sellType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *sellType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e sellType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(sellTypes[*e-1], start)
+ enc.EncodeElement(sellTypes[e-1], start)
return nil
}
@@ -1410,11 +1410,11 @@ func (e *loanPmtFreq) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
return e.FromString(value)
}
-func (e *loanPmtFreq) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e loanPmtFreq) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(loanPmtFreqs[*e-1], start)
+ enc.EncodeElement(loanPmtFreqs[e-1], start)
return nil
}
@@ -1478,11 +1478,11 @@ func (e *incomeType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
return e.FromString(value)
}
-func (e *incomeType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e incomeType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(incomeTypes[*e-1], start)
+ enc.EncodeElement(incomeTypes[e-1], start)
return nil
}
@@ -1544,11 +1544,11 @@ func (e *sellReason) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
return e.FromString(value)
}
-func (e *sellReason) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e sellReason) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(sellReasons[*e-1], start)
+ enc.EncodeElement(sellReasons[e-1], start)
return nil
}
@@ -1609,11 +1609,11 @@ func (e *optSellType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
return e.FromString(value)
}
-func (e *optSellType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e optSellType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(optSellTypes[*e-1], start)
+ enc.EncodeElement(optSellTypes[e-1], start)
return nil
}
@@ -1676,11 +1676,11 @@ func (e *relType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *relType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e relType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(relTypes[*e-1], start)
+ enc.EncodeElement(relTypes[e-1], start)
return nil
}
@@ -1743,11 +1743,11 @@ func (e *charType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *charType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e charType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(charTypes[*e-1], start)
+ enc.EncodeElement(charTypes[e-1], start)
return nil
}
@@ -1808,11 +1808,11 @@ func (e *syncMode) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *syncMode) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e syncMode) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(syncModes[*e-1], start)
+ enc.EncodeElement(syncModes[e-1], start)
return nil
}
@@ -1873,11 +1873,11 @@ func (e *ofxSec) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *ofxSec) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e ofxSec) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(ofxSecs[*e-1], start)
+ enc.EncodeElement(ofxSecs[e-1], start)
return nil
}
@@ -1938,11 +1938,11 @@ func (e *debtType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *debtType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e debtType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(debtTypes[*e-1], start)
+ enc.EncodeElement(debtTypes[e-1], start)
return nil
}
@@ -2005,11 +2005,11 @@ func (e *debtClass) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *debtClass) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e debtClass) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(debtClasss[*e-1], start)
+ enc.EncodeElement(debtClasss[e-1], start)
return nil
}
@@ -2073,11 +2073,11 @@ func (e *couponFreq) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
return e.FromString(value)
}
-func (e *couponFreq) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e couponFreq) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(couponFreqs[*e-1], start)
+ enc.EncodeElement(couponFreqs[e-1], start)
return nil
}
@@ -2140,11 +2140,11 @@ func (e *callType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *callType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e callType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(callTypes[*e-1], start)
+ enc.EncodeElement(callTypes[e-1], start)
return nil
}
@@ -2210,11 +2210,11 @@ func (e *assetClass) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
return e.FromString(value)
}
-func (e *assetClass) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e assetClass) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(assetClasss[*e-1], start)
+ enc.EncodeElement(assetClasss[e-1], start)
return nil
}
@@ -2276,11 +2276,11 @@ func (e *mfType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *mfType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e mfType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(mfTypes[*e-1], start)
+ enc.EncodeElement(mfTypes[e-1], start)
return nil
}
@@ -2341,11 +2341,11 @@ func (e *optType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *optType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e optType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(optTypes[*e-1], start)
+ enc.EncodeElement(optTypes[e-1], start)
return nil
}
@@ -2408,11 +2408,11 @@ func (e *stockType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *stockType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e stockType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(stockTypes[*e-1], start)
+ enc.EncodeElement(stockTypes[e-1], start)
return nil
}
@@ -2476,11 +2476,11 @@ func (e *holderType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
return e.FromString(value)
}
-func (e *holderType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e holderType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(holderTypes[*e-1], start)
+ enc.EncodeElement(holderTypes[e-1], start)
return nil
}
@@ -2543,11 +2543,11 @@ func (e *acctClassification) UnmarshalXML(d *xml.Decoder, start xml.StartElement
return e.FromString(value)
}
-func (e *acctClassification) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e acctClassification) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(acctClassifications[*e-1], start)
+ enc.EncodeElement(acctClassifications[e-1], start)
return nil
}
@@ -2609,11 +2609,11 @@ func (e *svcStatus) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
return e.FromString(value)
}
-func (e *svcStatus) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e svcStatus) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(svcStatuss[*e-1], start)
+ enc.EncodeElement(svcStatuss[e-1], start)
return nil
}
@@ -2683,11 +2683,11 @@ func (e *usProductType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) err
return e.FromString(value)
}
-func (e *usProductType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
+func (e usProductType) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {
if !e.Valid() {
return nil
}
- enc.EncodeElement(usProductTypes[*e-1], start)
+ enc.EncodeElement(usProductTypes[e-1], start)
return nil
}
diff --git a/constants_test.go b/constants_test.go
index bde41c7..7c05e1f 100644
--- a/constants_test.go
+++ b/constants_test.go
@@ -56,6 +56,18 @@ func TestOfxVersion(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E ofxVersion
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct OfxVersion): %s\n", err)
+ }
+ if string(b) != "220" {
+ t.Fatalf("Expected '%s', got '%s'\n", "220", string(b))
+ }
}
func TestAcctType(t *testing.T) {
@@ -101,6 +113,18 @@ func TestAcctType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E acctType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct AcctType): %s\n", err)
+ }
+ if string(b) != "CD" {
+ t.Fatalf("Expected '%s', got '%s'\n", "CD", string(b))
+ }
}
func TestTrnType(t *testing.T) {
@@ -146,6 +170,18 @@ func TestTrnType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E trnType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct TrnType): %s\n", err)
+ }
+ if string(b) != "OTHER" {
+ t.Fatalf("Expected '%s', got '%s'\n", "OTHER", string(b))
+ }
}
func TestImageType(t *testing.T) {
@@ -191,6 +227,18 @@ func TestImageType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E imageType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct ImageType): %s\n", err)
+ }
+ if string(b) != "TAX" {
+ t.Fatalf("Expected '%s', got '%s'\n", "TAX", string(b))
+ }
}
func TestImageRefType(t *testing.T) {
@@ -236,6 +284,18 @@ func TestImageRefType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E imageRefType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct ImageRefType): %s\n", err)
+ }
+ if string(b) != "FORMURL" {
+ t.Fatalf("Expected '%s', got '%s'\n", "FORMURL", string(b))
+ }
}
func TestCheckSup(t *testing.T) {
@@ -281,6 +341,18 @@ func TestCheckSup(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E checkSup
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct CheckSup): %s\n", err)
+ }
+ if string(b) != "FRONTANDBACK" {
+ t.Fatalf("Expected '%s', got '%s'\n", "FRONTANDBACK", string(b))
+ }
}
func TestCorrectAction(t *testing.T) {
@@ -326,6 +398,18 @@ func TestCorrectAction(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E correctAction
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct CorrectAction): %s\n", err)
+ }
+ if string(b) != "REPLACE" {
+ t.Fatalf("Expected '%s', got '%s'\n", "REPLACE", string(b))
+ }
}
func TestBalType(t *testing.T) {
@@ -371,6 +455,18 @@ func TestBalType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E balType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct BalType): %s\n", err)
+ }
+ if string(b) != "NUMBER" {
+ t.Fatalf("Expected '%s', got '%s'\n", "NUMBER", string(b))
+ }
}
func TestInv401kSource(t *testing.T) {
@@ -416,6 +512,18 @@ func TestInv401kSource(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E inv401kSource
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct Inv401kSource): %s\n", err)
+ }
+ if string(b) != "OTHERNONVEST" {
+ t.Fatalf("Expected '%s', got '%s'\n", "OTHERNONVEST", string(b))
+ }
}
func TestSubAcctType(t *testing.T) {
@@ -461,6 +569,18 @@ func TestSubAcctType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E subAcctType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct SubAcctType): %s\n", err)
+ }
+ if string(b) != "OTHER" {
+ t.Fatalf("Expected '%s', got '%s'\n", "OTHER", string(b))
+ }
}
func TestBuyType(t *testing.T) {
@@ -506,6 +626,18 @@ func TestBuyType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E buyType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct BuyType): %s\n", err)
+ }
+ if string(b) != "BUYTOCOVER" {
+ t.Fatalf("Expected '%s', got '%s'\n", "BUYTOCOVER", string(b))
+ }
}
func TestOptAction(t *testing.T) {
@@ -551,6 +683,18 @@ func TestOptAction(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E optAction
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct OptAction): %s\n", err)
+ }
+ if string(b) != "EXPIRE" {
+ t.Fatalf("Expected '%s', got '%s'\n", "EXPIRE", string(b))
+ }
}
func TestTferAction(t *testing.T) {
@@ -596,6 +740,18 @@ func TestTferAction(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E tferAction
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct TferAction): %s\n", err)
+ }
+ if string(b) != "OUT" {
+ t.Fatalf("Expected '%s', got '%s'\n", "OUT", string(b))
+ }
}
func TestPosType(t *testing.T) {
@@ -641,6 +797,18 @@ func TestPosType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E posType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct PosType): %s\n", err)
+ }
+ if string(b) != "SHORT" {
+ t.Fatalf("Expected '%s', got '%s'\n", "SHORT", string(b))
+ }
}
func TestSecured(t *testing.T) {
@@ -686,6 +854,18 @@ func TestSecured(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E secured
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct Secured): %s\n", err)
+ }
+ if string(b) != "COVERED" {
+ t.Fatalf("Expected '%s', got '%s'\n", "COVERED", string(b))
+ }
}
func TestDuration(t *testing.T) {
@@ -731,6 +911,18 @@ func TestDuration(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E duration
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct Duration): %s\n", err)
+ }
+ if string(b) != "IMMEDIATE" {
+ t.Fatalf("Expected '%s', got '%s'\n", "IMMEDIATE", string(b))
+ }
}
func TestRestriction(t *testing.T) {
@@ -776,6 +968,18 @@ func TestRestriction(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E restriction
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct Restriction): %s\n", err)
+ }
+ if string(b) != "NONE" {
+ t.Fatalf("Expected '%s', got '%s'\n", "NONE", string(b))
+ }
}
func TestUnitType(t *testing.T) {
@@ -821,6 +1025,18 @@ func TestUnitType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E unitType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct UnitType): %s\n", err)
+ }
+ if string(b) != "CURRENCY" {
+ t.Fatalf("Expected '%s', got '%s'\n", "CURRENCY", string(b))
+ }
}
func TestOptBuyType(t *testing.T) {
@@ -866,6 +1082,18 @@ func TestOptBuyType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E optBuyType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct OptBuyType): %s\n", err)
+ }
+ if string(b) != "BUYTOCLOSE" {
+ t.Fatalf("Expected '%s', got '%s'\n", "BUYTOCLOSE", string(b))
+ }
}
func TestSellType(t *testing.T) {
@@ -911,6 +1139,18 @@ func TestSellType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E sellType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct SellType): %s\n", err)
+ }
+ if string(b) != "SELLSHORT" {
+ t.Fatalf("Expected '%s', got '%s'\n", "SELLSHORT", string(b))
+ }
}
func TestLoanPmtFreq(t *testing.T) {
@@ -956,6 +1196,18 @@ func TestLoanPmtFreq(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E loanPmtFreq
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct LoanPmtFreq): %s\n", err)
+ }
+ if string(b) != "OTHER" {
+ t.Fatalf("Expected '%s', got '%s'\n", "OTHER", string(b))
+ }
}
func TestIncomeType(t *testing.T) {
@@ -1001,6 +1253,18 @@ func TestIncomeType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E incomeType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct IncomeType): %s\n", err)
+ }
+ if string(b) != "MISC" {
+ t.Fatalf("Expected '%s', got '%s'\n", "MISC", string(b))
+ }
}
func TestSellReason(t *testing.T) {
@@ -1046,6 +1310,18 @@ func TestSellReason(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E sellReason
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct SellReason): %s\n", err)
+ }
+ if string(b) != "MATURITY" {
+ t.Fatalf("Expected '%s', got '%s'\n", "MATURITY", string(b))
+ }
}
func TestOptSellType(t *testing.T) {
@@ -1091,6 +1367,18 @@ func TestOptSellType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E optSellType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct OptSellType): %s\n", err)
+ }
+ if string(b) != "SELLTOOPEN" {
+ t.Fatalf("Expected '%s', got '%s'\n", "SELLTOOPEN", string(b))
+ }
}
func TestRelType(t *testing.T) {
@@ -1136,6 +1424,18 @@ func TestRelType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E relType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct RelType): %s\n", err)
+ }
+ if string(b) != "OTHER" {
+ t.Fatalf("Expected '%s', got '%s'\n", "OTHER", string(b))
+ }
}
func TestCharType(t *testing.T) {
@@ -1181,6 +1481,18 @@ func TestCharType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E charType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct CharType): %s\n", err)
+ }
+ if string(b) != "ALPHAANDNUMERIC" {
+ t.Fatalf("Expected '%s', got '%s'\n", "ALPHAANDNUMERIC", string(b))
+ }
}
func TestSyncMode(t *testing.T) {
@@ -1226,6 +1538,18 @@ func TestSyncMode(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E syncMode
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct SyncMode): %s\n", err)
+ }
+ if string(b) != "LITE" {
+ t.Fatalf("Expected '%s', got '%s'\n", "LITE", string(b))
+ }
}
func TestOfxSec(t *testing.T) {
@@ -1271,6 +1595,18 @@ func TestOfxSec(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E ofxSec
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct OfxSec): %s\n", err)
+ }
+ if string(b) != "TYPE 1" {
+ t.Fatalf("Expected '%s', got '%s'\n", "TYPE 1", string(b))
+ }
}
func TestDebtType(t *testing.T) {
@@ -1316,6 +1652,18 @@ func TestDebtType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E debtType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct DebtType): %s\n", err)
+ }
+ if string(b) != "ZERO" {
+ t.Fatalf("Expected '%s', got '%s'\n", "ZERO", string(b))
+ }
}
func TestDebtClass(t *testing.T) {
@@ -1361,6 +1709,18 @@ func TestDebtClass(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E debtClass
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct DebtClass): %s\n", err)
+ }
+ if string(b) != "OTHER" {
+ t.Fatalf("Expected '%s', got '%s'\n", "OTHER", string(b))
+ }
}
func TestCouponFreq(t *testing.T) {
@@ -1406,6 +1766,18 @@ func TestCouponFreq(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E couponFreq
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct CouponFreq): %s\n", err)
+ }
+ if string(b) != "OTHER" {
+ t.Fatalf("Expected '%s', got '%s'\n", "OTHER", string(b))
+ }
}
func TestCallType(t *testing.T) {
@@ -1451,6 +1823,18 @@ func TestCallType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E callType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct CallType): %s\n", err)
+ }
+ if string(b) != "MATURITY" {
+ t.Fatalf("Expected '%s', got '%s'\n", "MATURITY", string(b))
+ }
}
func TestAssetClass(t *testing.T) {
@@ -1496,6 +1880,18 @@ func TestAssetClass(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E assetClass
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct AssetClass): %s\n", err)
+ }
+ if string(b) != "OTHER" {
+ t.Fatalf("Expected '%s', got '%s'\n", "OTHER", string(b))
+ }
}
func TestMfType(t *testing.T) {
@@ -1541,6 +1937,18 @@ func TestMfType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E mfType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct MfType): %s\n", err)
+ }
+ if string(b) != "OTHER" {
+ t.Fatalf("Expected '%s', got '%s'\n", "OTHER", string(b))
+ }
}
func TestOptType(t *testing.T) {
@@ -1586,6 +1994,18 @@ func TestOptType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E optType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct OptType): %s\n", err)
+ }
+ if string(b) != "CALL" {
+ t.Fatalf("Expected '%s', got '%s'\n", "CALL", string(b))
+ }
}
func TestStockType(t *testing.T) {
@@ -1631,6 +2051,18 @@ func TestStockType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E stockType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct StockType): %s\n", err)
+ }
+ if string(b) != "OTHER" {
+ t.Fatalf("Expected '%s', got '%s'\n", "OTHER", string(b))
+ }
}
func TestHolderType(t *testing.T) {
@@ -1676,6 +2108,18 @@ func TestHolderType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E holderType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct HolderType): %s\n", err)
+ }
+ if string(b) != "OTHER" {
+ t.Fatalf("Expected '%s', got '%s'\n", "OTHER", string(b))
+ }
}
func TestAcctClassification(t *testing.T) {
@@ -1721,6 +2165,18 @@ func TestAcctClassification(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E acctClassification
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct AcctClassification): %s\n", err)
+ }
+ if string(b) != "OTHER" {
+ t.Fatalf("Expected '%s', got '%s'\n", "OTHER", string(b))
+ }
}
func TestSvcStatus(t *testing.T) {
@@ -1766,6 +2222,18 @@ func TestSvcStatus(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E svcStatus
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct SvcStatus): %s\n", err)
+ }
+ if string(b) != "ACTIVE" {
+ t.Fatalf("Expected '%s', got '%s'\n", "ACTIVE", string(b))
+ }
}
func TestUsProductType(t *testing.T) {
@@ -1811,4 +2279,16 @@ func TestUsProductType(t *testing.T) {
if err == nil {
t.Fatalf("Expected error unmarshalling garbage value\n")
}
+
+ type SC struct {
+ E usProductType
+ }
+ sc := SC{E: e}
+ b, err = xml.Marshal(sc)
+ if err != nil {
+ t.Fatalf("Unexpected error on xml.Marshal(struct UsProductType): %s\n", err)
+ }
+ if string(b) != "UGMA" {
+ t.Fatalf("Expected '%s', got '%s'\n", "UGMA", string(b))
+ }
}
diff --git a/generate_constants.py b/generate_constants.py
index 704d31b..b1e09da 100755
--- a/generate_constants.py
+++ b/generate_constants.py
@@ -116,11 +116,11 @@ func (e *{enumLower}) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
return e.FromString(value)
}}
-func (e *{enumLower}) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {{
+func (e {enumLower}) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {{
if !e.Valid() {{
return nil
}}
- enc.EncodeElement({enumLower}s[*e-1], start)
+ enc.EncodeElement({enumLower}s[e-1], start)
return nil
}}
@@ -225,6 +225,18 @@ func Test{enum}(t *testing.T) {{
if err == nil {{
t.Fatalf("Expected error unmarshalling garbage value\\n")
}}
+
+ type SC struct {{
+ E {enumLower}
+ }}
+ sc := SC{{E: e}}
+ b, err = xml.Marshal(sc)
+ if err != nil {{
+ t.Fatalf("Unexpected error on xml.Marshal(struct {enum}): %s\\n", err)
+ }}
+ if string(b) != "{lastValueUpper}" {{
+ t.Fatalf("Expected '%s', got '%s'\\n", "{lastValueUpper}", string(b))
+ }}
}}
"""
@@ -232,8 +244,10 @@ with open("constants_test.go", 'w') as f:
f.write(test_header)
for enum in enums:
+ enumLower = enum[:1].lower() + enum[1:].replace(" ", "")
firstValueUpper = enums[enum][0][0].upper()
lastValueUpper = enums[enum][0][-1].upper()
f.write(test_template.format(enum=enum,
+ enumLower=enumLower,
firstValueUpper=firstValueUpper,
lastValueUpper=lastValueUpper))
diff --git a/invstmt.go b/invstmt.go
index 77282a1..a913f7f 100644
--- a/invstmt.go
+++ b/invstmt.go
@@ -911,12 +911,12 @@ func (p *PositionList) UnmarshalXML(d *xml.Decoder, start xml.StartElement) erro
}
// MarshalXML handles marshalling a PositionList to an XML string
-func (p *PositionList) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
+func (p PositionList) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
invPosListElement := xml.StartElement{Name: xml.Name{Local: "INVPOSLIST"}}
if err := e.EncodeToken(invPosListElement); err != nil {
return err
}
- for _, position := range *p {
+ for _, position := range p {
start := xml.StartElement{Name: xml.Name{Local: position.PositionType()}}
switch pos := position.(type) {
case DebtPosition:
@@ -1216,12 +1216,12 @@ func (o *OOList) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
}
// MarshalXML handles marshalling an OOList to an XML string
-func (o *OOList) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
+func (o OOList) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
ooListElement := xml.StartElement{Name: xml.Name{Local: "INVOOLIST"}}
if err := e.EncodeToken(ooListElement); err != nil {
return err
}
- for _, openorder := range *o {
+ for _, openorder := range o {
start := xml.StartElement{Name: xml.Name{Local: openorder.OrderType()}}
switch oo := openorder.(type) {
case OOBuyDebt:
diff --git a/types.go b/types.go
index 3004091..dda6a3f 100644
--- a/types.go
+++ b/types.go
@@ -76,7 +76,7 @@ func (a Amount) String() string {
}
// MarshalXML marshals an Amount to SGML/XML
-func (a *Amount) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
+func (a Amount) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
return e.EncodeElement(a.String(), start)
}
@@ -188,7 +188,7 @@ func (od Date) String() string {
}
// MarshalXML marshals a Date to XML
-func (od *Date) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
+func (od Date) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
return e.EncodeElement(od.String(), start)
}
@@ -260,8 +260,8 @@ func (ob *Boolean) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
}
// MarshalXML marshals a Boolean to XML
-func (ob *Boolean) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
- if *ob {
+func (ob Boolean) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
+ if ob {
return e.EncodeElement("Y", start)
}
return e.EncodeElement("N", start)
@@ -358,7 +358,7 @@ func (c *CurrSymbol) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
}
// MarshalXML marshals a CurrSymbol to SGML/XML
-func (c *CurrSymbol) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
+func (c CurrSymbol) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
return e.EncodeElement(c.String(), start)
}
diff --git a/types_test.go b/types_test.go
index 2edbbfc..be338bb 100644
--- a/types_test.go
+++ b/types_test.go
@@ -91,6 +91,13 @@ func TestMarshalAmount(t *testing.T) {
marshalHelper(t, "-768276587425", &a)
a.SetFrac64(1, 12)
marshalHelper(t, "0.0833333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333", &a)
+
+ type AmountStruct struct {
+ A Amount
+ }
+ var as AmountStruct
+ as.A.SetFrac64(1, 8)
+ marshalHelper(t, "0.125", as)
}
func TestUnmarshalAmount(t *testing.T) {
@@ -185,6 +192,13 @@ func TestMarshalDate(t *testing.T) {
// Time zone without textual description
d = NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, GMTNodesc)
marshalHelper(t, "20170314150926.053[0]", d)
+
+ type DateStruct struct {
+ D Date
+ }
+ d = NewDateGMT(2017, 3, 14, 15, 9, 26, 53*1000*1000)
+ ds := DateStruct{D: *d}
+ marshalHelper(t, "20170314150926.053[0:GMT]", ds)
}
func TestUnmarshalDate(t *testing.T) {
@@ -328,6 +342,12 @@ func TestMarshalBoolean(t *testing.T) {
marshalHelper(t, "Y", &b)
b = false
marshalHelper(t, "N", &b)
+
+ type BooleanStruct struct {
+ B Boolean
+ }
+ bs := BooleanStruct{B: true}
+ marshalHelper(t, "Y", bs)
}
func TestUnmarshalBoolean(t *testing.T) {
@@ -412,6 +432,12 @@ func TestRandomUID(t *testing.T) {
func TestMarshalCurrSymbol(t *testing.T) {
c, _ := NewCurrSymbol("USD")
marshalHelper(t, "USD", &c)
+
+ type CurrSymbolStruct struct {
+ CS CurrSymbol
+ }
+ css := CurrSymbolStruct{CS: *c}
+ marshalHelper(t, "USD", css)
}
func TestUnmarshalCurrSymbol(t *testing.T) {