@@ -19,6 +19,7 @@ class ItemsSpec extends Specification { def is =
1919
2020 def items (items : Items ) = { t ^
2121 " inserting and getting an item" ! insert(items) ^
22+ " getting items by App ID and geo data" ! getByAppidAndLatlng(items) ^
2223 " getting items by IDs" ! getByIds(items) ^
2324 " getting items by IDs sorted by start time" ! getRecentByIds(items) ^
2425 " updating an item" ! update(items) ^
@@ -67,6 +68,65 @@ class ItemsSpec extends Specification { def is =
6768 (items.get(appid, id2) must beSome(item2))
6869 }
6970
71+ def getByAppidAndLatlng (items : Items ) = {
72+ val id = " getByAppidAndLatlng"
73+ val appid = 5
74+ val dac = Item (
75+ id = id + " dac" ,
76+ appid = appid,
77+ ct = DateTime .now,
78+ itypes = List (" fresh" , " meat" ),
79+ starttime = Some (DateTime .now.hour(14 ).minute(13 )),
80+ endtime = None ,
81+ price = Some (49.394 ),
82+ profit = None ,
83+ latlng = Some ((37.3197611 , - 122.0466141 )),
84+ inactive = None ,
85+ attributes = Some (Map (" foo" -> " bar" , " foo2" -> " bar2" )))
86+ val hsh = Item (
87+ id = id + " hsh" ,
88+ appid = appid,
89+ ct = DateTime .now,
90+ itypes = List (" fresh" , " meat" ),
91+ starttime = Some (DateTime .now.hour(23 ).minute(13 )),
92+ endtime = None ,
93+ price = Some (49.394 ),
94+ profit = None ,
95+ latlng = Some ((37.3370801 , - 122.0493201 )),
96+ inactive = None ,
97+ attributes = None )
98+ val mvh = Item (
99+ id = id + " mvh" ,
100+ appid = appid,
101+ ct = DateTime .now,
102+ itypes = List (" fresh" , " meat" ),
103+ starttime = Some (DateTime .now.hour(17 ).minute(13 )),
104+ endtime = None ,
105+ price = Some (49.394 ),
106+ profit = None ,
107+ latlng = Some ((37.3154153 , - 122.0566829 )),
108+ inactive = None ,
109+ attributes = Some (Map (" foo3" -> " bar3" )))
110+ val lbh = Item (
111+ id = id + " lbh" ,
112+ appid = appid,
113+ ct = DateTime .now,
114+ itypes = List (" fresh" , " meat" ),
115+ starttime = Some (DateTime .now.hour(3 ).minute(13 )),
116+ endtime = None ,
117+ price = Some (49.394 ),
118+ profit = None ,
119+ latlng = Some ((37.2997029 , - 122.0034684 )),
120+ inactive = None ,
121+ attributes = Some (Map (" foo4" -> " bar4" , " foo5" -> " bar5" )))
122+ val allItems = Seq (dac, hsh, lbh, mvh)
123+ allItems foreach { items.insert(_) }
124+ (items.getByAppidAndLatlng(appid, (37.336402 , - 122.040467 ), None , None ).toSeq must beEqualTo(Seq (hsh, dac, mvh, lbh))) and
125+ (items.getByAppidAndLatlng(appid, (37.3229978 , - 122.0321823 ), None , None ).toSeq must beEqualTo(Seq (dac, hsh, mvh, lbh))) and
126+ (items.getByAppidAndLatlng(appid, (37.3229978 , - 122.0321823 ), Some (2.2 ), None ).toSeq must beEqualTo(Seq (dac, hsh))) and
127+ (items.getByAppidAndLatlng(appid, (37.3229978 , - 122.0321823 ), Some (2.2 ), Some (" mi" )).toSeq must beEqualTo(Seq (dac, hsh, mvh)))
128+ }
129+
70130 def getByIds (items : Items ) = {
71131 val id = " getByIds"
72132 val appid = 4
0 commit comments