Skip to content

Commit 3e01ace

Browse files
author
Eggya Chiquita
committed
update pending test
1 parent 6b4f0a7 commit 3e01ace

File tree

10 files changed

+289
-11
lines changed

10 files changed

+289
-11
lines changed

app_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,8 @@ func TestApp_IsPaid(t *testing.T) {
1616
}
1717

1818
func TestApp_WithDefaults(t *testing.T) {
19-
assert.Equal(t, "pending", "TODO")
19+
a := &App{}
20+
app := a.WithDefaults()
21+
assert.Equal(t, *app.Privacypolicy, 0)
22+
assert.Equal(t, *app.Paid, 0)
2023
}

banner_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,8 @@ func TestBanner_Position(t *testing.T) {
1616
}
1717

1818
func TestBanner_WithDefaults(t *testing.T) {
19-
assert.Equal(t, "pending", "TODO")
19+
b := &Banner{}
20+
banner := b.WithDefaults()
21+
assert.Equal(t, *banner.Topframe, 0)
22+
assert.Equal(t, *banner.Pos, AD_POS_UNKNOWN)
2023
}

device_test.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,11 @@ func TestDevice_DeviceType(t *testing.T) {
2626
}
2727

2828
func TestDevice_WithDefaults(t *testing.T) {
29-
assert.Equal(t, "pending", "TODO")
29+
d := &Device{}
30+
device := d.WithDefaults()
31+
32+
assert.Equal(t, *device.Dnt, 0)
33+
assert.Equal(t, *device.Js, 0)
34+
assert.Equal(t, *device.Connectiontype, CONN_TYPE_UNKNOWN)
35+
assert.Equal(t, *device.Devicetype, DEVICE_TYPE_UNKNOWN)
3036
}

impression.go

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ func (imp *Impression) Valid() (bool, error) {
4141
if ok, err := imp.Video.Valid(); !ok {
4242
return ok, err
4343
}
44-
} else {
44+
} else if imp.Banner == nil {
4545
return false, invalidImpBoV
4646
}
4747

@@ -75,3 +75,30 @@ func (imp *Impression) WithDefaults() *Impression {
7575

7676
return imp
7777
}
78+
79+
// Set the ID
80+
func (imp *Impression) SetId(id string) *Impression {
81+
if imp.Id == nil {
82+
imp.Id = new(string)
83+
}
84+
*imp.Id = id
85+
return imp
86+
}
87+
88+
// Set the Banner
89+
func (imp *Impression) SetBanner(b Banner) *Impression {
90+
if imp.Banner == nil {
91+
imp.Banner = new(Banner)
92+
}
93+
*imp.Banner = b
94+
return imp
95+
}
96+
97+
// Set the Video
98+
func (imp *Impression) SetVideo(v Video) *Impression {
99+
if imp.Video == nil {
100+
imp.Video = new(Video)
101+
}
102+
*imp.Video = v
103+
return imp
104+
}

impression_test.go

Lines changed: 52 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,59 @@ import (
66
)
77

88
func TestImpression_Valid(t *testing.T) {
9-
assert.Equal(t, "pending", "TODO")
9+
imp := &Impression{}
10+
b := &Banner{}
11+
v := &Video{Mimes: []string{"MIME_123"}}
12+
13+
// blank Impression
14+
ok, err := imp.Valid()
15+
assert.Equal(t, ok, false)
16+
if err != nil {
17+
assert.Equal(t, err.Error(), "openrtb parse: impression ID missing")
18+
}
19+
20+
// Impression with ID
21+
imp.SetId("CODE_12")
22+
ok, err = imp.Valid()
23+
assert.Equal(t, ok, false)
24+
if err != nil {
25+
assert.Equal(t, err.Error(), "openrtb parse: impression has neither a banner nor video")
26+
}
27+
28+
// Impression with Banner
29+
imp.SetBanner(*b)
30+
ok, err = imp.Valid()
31+
assert.Equal(t, ok, true)
32+
33+
// Impression with both Banner and Video
34+
v.SetLinearity(1).SetMinduration(1).SetMaxduration(5).SetProtocol(1)
35+
imp.SetVideo(*v)
36+
ok, err = imp.Valid()
37+
assert.Equal(t, ok, false)
38+
if err != nil {
39+
assert.Equal(t, err.Error(), "openrtb parse: impression has banner and video")
40+
}
41+
42+
// Impression with valid attrs
43+
imp.Banner = nil
44+
ok, err = imp.Valid()
45+
assert.Equal(t, ok, true)
1046
}
1147

1248
func TestImpression_WithDefaults(t *testing.T) {
13-
assert.Equal(t, "pending", "TODO")
49+
i := &Impression{}
50+
b := &Banner{}
51+
v := &Video{}
52+
53+
i.SetBanner(*b).SetVideo(*v)
54+
imp := i.WithDefaults()
55+
56+
assert.Equal(t, *imp.Instl, 0)
57+
assert.Equal(t, *imp.Bidfloor, 0)
58+
assert.Equal(t, *imp.Bidfloorcur, "USD")
59+
assert.Equal(t, *imp.Banner.Topframe, 0)
60+
assert.Equal(t, *imp.Banner.Pos, AD_POS_UNKNOWN)
61+
assert.Equal(t, *imp.Video.Sequence, 1)
62+
assert.Equal(t, *imp.Video.Boxingallowed, 1)
63+
assert.Equal(t, *imp.Video.Pos, AD_POS_UNKNOWN)
1464
}

request.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,3 +99,30 @@ func (req *Request) WithDefaults() *Request {
9999

100100
return req
101101
}
102+
103+
// Set the ID
104+
func (req *Request) SetId(id string) *Request {
105+
if req.Id == nil {
106+
req.Id = new(string)
107+
}
108+
*req.Id = id
109+
return req
110+
}
111+
112+
// Set the Site
113+
func (req *Request) SetSite(site Site) *Request {
114+
if req.Site == nil {
115+
req.Site = new(Site)
116+
}
117+
*req.Site = site
118+
return req
119+
}
120+
121+
// Set the App
122+
func (req *Request) SetApp(app App) *Request {
123+
if req.App == nil {
124+
req.App = new(App)
125+
}
126+
*req.App = app
127+
return req
128+
}

request_test.go

Lines changed: 77 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,86 @@ func TestParseRequest_ExpandableCreative(t *testing.T) {
5555
}
5656

5757
func TestRequest_Valid(t *testing.T) {
58-
assert.Equal(t, "pending", "TODO")
58+
r := &Request{}
59+
s := &Site{}
60+
a := &App{}
61+
i := &Impression{}
62+
b := &Banner{}
63+
64+
// blank Request
65+
ok, err := r.Valid()
66+
assert.Equal(t, ok, false)
67+
if err != nil {
68+
assert.Equal(t, err.Error(), "openrtb parse: request ID missing")
69+
}
70+
71+
// with ID
72+
r.SetId("RAND_ID")
73+
ok, err = r.Valid()
74+
assert.Equal(t, ok, false)
75+
if err != nil {
76+
assert.Equal(t, err.Error(), "openrtb parse: no impressions")
77+
}
78+
79+
// with Site
80+
r.SetSite(*s)
81+
ok, err = r.Valid()
82+
assert.Equal(t, ok, false)
83+
if err != nil {
84+
assert.Equal(t, err.Error(), "openrtb parse: no impressions")
85+
}
86+
87+
// with Site & App
88+
r.SetApp(*a)
89+
ok, err = r.Valid()
90+
assert.Equal(t, ok, false)
91+
if err != nil {
92+
assert.Equal(t, err.Error(), "openrtb parse: no impressions")
93+
}
94+
95+
// with Impression
96+
i.SetId("IMPID").SetBanner(*b).WithDefaults()
97+
r.Imp = []Impression{*i}
98+
ok, err = r.Valid()
99+
assert.Equal(t, ok, false)
100+
if err != nil {
101+
assert.Equal(t, err.Error(), "openrtb parse: request has site and app")
102+
}
103+
104+
// with valid attrs
105+
r.App = nil
106+
ok, err = r.Valid()
107+
assert.Equal(t, ok, true)
59108
}
60109

61110
func TestRequest_WithDefaults(t *testing.T) {
62-
assert.Equal(t, "pending", "TODO")
111+
s := &Site{}
112+
a := &App{}
113+
d := &Device{}
114+
i := &Impression{}
115+
b := &Banner{}
116+
v := &Video{}
117+
118+
i.SetBanner(*b).SetVideo(*v)
119+
r := &Request{Site: s, App: a, Device: d, Imp: []Impression{*i}}
120+
121+
req := r.WithDefaults()
122+
assert.Equal(t, *req.At, 2)
123+
assert.Equal(t, *req.App.Privacypolicy, 0)
124+
assert.Equal(t, *req.App.Paid, 0)
125+
assert.Equal(t, *req.Site.Privacypolicy, 0)
126+
assert.Equal(t, *req.Device.Dnt, 0)
127+
assert.Equal(t, *req.Device.Js, 0)
128+
assert.Equal(t, *req.Device.Connectiontype, CONN_TYPE_UNKNOWN)
129+
assert.Equal(t, *req.Device.Devicetype, DEVICE_TYPE_UNKNOWN)
130+
assert.Equal(t, *req.Imp[0].Instl, 0)
131+
assert.Equal(t, *req.Imp[0].Bidfloor, 0)
132+
assert.Equal(t, *req.Imp[0].Bidfloorcur, "USD")
133+
assert.Equal(t, *req.Imp[0].Banner.Topframe, 0)
134+
assert.Equal(t, *req.Imp[0].Banner.Pos, AD_POS_UNKNOWN)
135+
assert.Equal(t, *req.Imp[0].Video.Sequence, 1)
136+
assert.Equal(t, *req.Imp[0].Video.Boxingallowed, 1)
137+
assert.Equal(t, *req.Imp[0].Video.Pos, AD_POS_UNKNOWN)
63138
}
64139

65140
func TestRequest_JSON(t *testing.T) {

site_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,7 @@ func TestSite_IsPrivacyPolicy(t *testing.T) {
1111
}
1212

1313
func TestSite_WithDefaults(t *testing.T) {
14-
assert.Equal(t, "pending", "TODO")
14+
s := &Site{}
15+
site := s.WithDefaults()
16+
assert.Equal(t, *site.Privacypolicy, 0)
1517
}

video.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,39 @@ func (v *Video) WithDefaults() *Video {
9595
}
9696
return v
9797
}
98+
99+
// Set the Linearity
100+
func (v *Video) SetLinearity(lin int) *Video {
101+
if v.Linearity == nil {
102+
v.Linearity = new(int)
103+
}
104+
*v.Linearity = lin
105+
return v
106+
}
107+
108+
// Set the Minduration
109+
func (v *Video) SetMinduration(mdur int) *Video {
110+
if v.Minduration == nil {
111+
v.Minduration = new(int)
112+
}
113+
*v.Minduration = mdur
114+
return v
115+
}
116+
117+
// Set the Maxduration
118+
func (v *Video) SetMaxduration(mdur int) *Video {
119+
if v.Maxduration == nil {
120+
v.Maxduration = new(int)
121+
}
122+
*v.Maxduration = mdur
123+
return v
124+
}
125+
126+
// Set the Protocol
127+
func (v *Video) SetProtocol(p int) *Video {
128+
if v.Protocol == nil {
129+
v.Protocol = new(int)
130+
}
131+
*v.Protocol = p
132+
return v
133+
}

video_test.go

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,58 @@ func TestVideo_Position(t *testing.T) {
2121
}
2222

2323
func TestVideo_Valid(t *testing.T) {
24-
assert.Equal(t, "pending", "TODO")
24+
v := &Video{}
25+
26+
// blank Video
27+
ok, err := v.Valid()
28+
assert.Equal(t, ok, false)
29+
if err != nil {
30+
assert.Equal(t, err.Error(), "openrtb parse: video has no mimes")
31+
}
32+
33+
// with Mimes
34+
v.Mimes = []string{"RAND_KEY"}
35+
ok, err = v.Valid()
36+
assert.Equal(t, ok, false)
37+
if err != nil {
38+
assert.Equal(t, err.Error(), "openrtb parse: video linearity missing")
39+
}
40+
41+
// with Linearity
42+
v.SetLinearity(2)
43+
ok, err = v.Valid()
44+
assert.Equal(t, ok, false)
45+
if err != nil {
46+
assert.Equal(t, err.Error(), "openrtb parse: video minduration missing")
47+
}
48+
49+
// with Maxduration
50+
v.SetMinduration(1)
51+
ok, err = v.Valid()
52+
assert.Equal(t, ok, false)
53+
if err != nil {
54+
assert.Equal(t, err.Error(), "openrtb parse: video maxduration missing")
55+
}
56+
57+
// with Maxduration
58+
v.SetMaxduration(5)
59+
ok, err = v.Valid()
60+
assert.Equal(t, ok, false)
61+
if err != nil {
62+
assert.Equal(t, err.Error(), "openrtb parse: video protocol missing")
63+
}
64+
65+
// with Protocol
66+
v.SetProtocol(1)
67+
ok, err = v.Valid()
68+
assert.Equal(t, ok, true)
2569
}
2670

2771
func TestVideo_WithDefaults(t *testing.T) {
28-
assert.Equal(t, "pending", "TODO")
72+
v := &Video{}
73+
vid := v.WithDefaults()
74+
75+
assert.Equal(t, *vid.Sequence, 1)
76+
assert.Equal(t, *vid.Boxingallowed, 1)
77+
assert.Equal(t, *vid.Pos, AD_POS_UNKNOWN)
2978
}

0 commit comments

Comments
 (0)