@@ -55,11 +55,86 @@ func TestParseRequest_ExpandableCreative(t *testing.T) {
5555}
5656
5757func 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
61110func 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
65140func TestRequest_JSON (t * testing.T ) {
0 commit comments