@Test public void test1_KeyValueCondition() throws Exception { System.out.println("test1_KeyValueCondition"); manager.getContext().validKeys.clear(); manager.getContext().validKeys.add("browser"); db.open(); AdDefinition b = new ImageAdDefinition(); b.setId("1"); KeyValueConditionDefinition sdef = new KeyValueConditionDefinition(); sdef.getKeyValues().add(new KeyValue("browser", "firefox")); sdef.getKeyValues().add(new KeyValue("browser", "chrome")); b.addConditionDefinition(ConditionDefinitions.KEYVALUE, sdef); b.setFormat(new FullBannerAdFormat()); db.addBanner(b); b = new ImageAdDefinition(); b.setId("2"); sdef = new KeyValueConditionDefinition(); sdef.getKeyValues().add(new KeyValue("browser", "firefox")); sdef.getKeyValues().add(new KeyValue("browser", "ie")); b.addConditionDefinition(ConditionDefinitions.KEYVALUE, sdef); b.setFormat(new FullBannerAdFormat()); db.addBanner(b); db.reopen(); AdRequest request = new AdRequest(); List<AdFormat> formats = new ArrayList<AdFormat>(); formats.add(new FullBannerAdFormat()); request.formats(formats); List<AdType> types = new ArrayList<AdType>(); types.add(AdTypes.forType(ImageAdType.TYPE)); request.types(types); request.keyValues().put("browser", "opera"); List<AdDefinition> result = db.search(request); assertTrue(result.isEmpty()); request.keyValues().clear(); request.keyValues().put("browser", "firefox"); result = db.search(request); assertEquals(2, result.size()); request.keyValues().clear(); request.keyValues().put("browser", "chrome"); result = db.search(request); assertEquals(1, result.size()); assertTrue(result.get(0).getId().equals("1")); request.keyValues().clear(); request.keyValues().put("browser", "ie"); result = db.search(request); assertEquals(1, result.size()); assertTrue(result.get(0).getId().equals("2")); }