Search in sources :

Example 6 with HttpPostGet

use of com.xrtb.common.HttpPostGet in project XRTB by benmfaul.

the class TestInvalidBids method testInvalidJson.

@Test
public void testInvalidJson() throws Exception {
    HttpPostGet http = new HttpPostGet();
    String s = Charset.defaultCharset().decode(ByteBuffer.wrap(Files.readAllBytes(Paths.get("./SampleBids/c1xbad.txt")))).toString();
    String content = null;
    long time = 0;
    try {
        content = http.sendPost("http://" + Config.testHost + "/rtb/bids/c1x", s);
    } catch (Exception error) {
        fail("Network error");
    }
    assertTrue(http.getResponseCode() == 204);
    assertNull(content);
}
Also used : HttpPostGet(com.xrtb.common.HttpPostGet) Test(org.junit.Test)

Example 7 with HttpPostGet

use of com.xrtb.common.HttpPostGet in project XRTB by benmfaul.

the class TestWinProcessing method testCappingTimes1.

@Test
public void testCappingTimes1() throws Exception {
    redisson.del("capped_blocker166.137.138.18");
    for (Campaign c : Configuration.getInstance().campaignsList) {
        if (c.adId.equals("ben:payday")) {
            for (Creative cc : c.creatives) {
                if (cc.impid.equals("blocker")) {
                    cc.capFrequency = 1;
                    break;
                }
            }
        }
    }
    HttpPostGet http = new HttpPostGet();
    String bid = Charset.defaultCharset().decode(ByteBuffer.wrap(Files.readAllBytes(Paths.get("./SampleBids/nexage50x50.txt")))).toString();
    // Get 1 time is ok, but 2d time is a no bid
    String s = http.sendPost("http://" + Config.testHost + "/rtb/bids/nexage", bid, 100000, 100000);
    assertNotNull(s);
    int rc = http.getResponseCode();
    assertTrue(rc == 200);
    String value = redisson.get("capped_blocker166.137.138.18");
    assertTrue(value == null);
    Bid win = new Bid(s);
    String repl = win.nurl.replaceAll("\\$", "");
    win.nurl = repl.replace("{AUCTION_PRICE}", ".05");
    System.out.println(win.nurl);
    s = http.sendPost(win.nurl, "", 30000, 30000);
    value = redisson.get("capped_blocker166.137.138.18");
    assertTrue(value.equals("1"));
    // better no bid.
    s = http.sendPost("http://" + Config.testHost + "/rtb/bids/nexage", bid, 100000, 100000);
    rc = http.getResponseCode();
    assertTrue(rc == 204);
    assertNull(s);
    rc = http.getResponseCode();
    value = redisson.get("capped_blocker166.137.138.18");
    assertTrue(value.equals("1"));
    System.out.println("DONE!");
}
Also used : Campaign(com.xrtb.common.Campaign) Creative(com.xrtb.common.Creative) HttpPostGet(com.xrtb.common.HttpPostGet) Bid(com.xrtb.pojo.Bid) Test(org.junit.Test)

Example 8 with HttpPostGet

use of com.xrtb.common.HttpPostGet in project XRTB by benmfaul.

the class TestWinProcessing method testWinProcessingSmartyAds.

/**
	 * Test the basic win processing system of the RTB
	 * @throws Exception on networking problems.
	 */
@Test
public void testWinProcessingSmartyAds() throws Exception {
    HttpPostGet http = new HttpPostGet();
    redisson.del("35c22289-06e2-48e9-a0cd-94aeb79fab43");
    // Make the bid
    String s = Charset.defaultCharset().decode(ByteBuffer.wrap(Files.readAllBytes(Paths.get("./SampleBids/nexage.txt")))).toString();
    /**
		 * Send the bid
		 */
    try {
        s = http.sendPost("http://" + Config.testHost + "/rtb/bids/smartyads", s, 3000000, 3000000);
    } catch (Exception error) {
        fail("Can't connect to test host: " + Config.testHost);
    }
    int code = http.getResponseCode();
    assertTrue(code == 200);
    Bid bid = null;
    System.out.println(s);
    int x = s.indexOf("{bid_id");
    assertTrue(x == -1);
    x = s.indexOf("%7Bbid_id");
    assertTrue(x == -1);
    try {
        bid = new Bid(s);
    } catch (Exception error) {
        error.printStackTrace();
        fail();
    }
    // Now retrieve the bid information from the cache
    Map m = redisson.hgetAll(bid.id);
    assertTrue(!m.isEmpty());
    String price = (String) m.get("PRICE");
    assertTrue(!price.equals("0.0"));
    /**
		 * Send the win notification
		 */
    try {
        String repl = bid.nurl.replaceAll("\\$", "");
        bid.nurl = repl.replace("{AUCTION_PRICE}", ".05");
        s = http.sendPost(bid.nurl, "");
    } catch (Exception error) {
        error.printStackTrace();
        fail();
    }
    System.out.println(s);
    x = s.indexOf("{creative_");
    assertTrue(x == -1);
    /*
		 * Make sure the returned adm is not crap html 
		 */
    DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    InputSource is = new InputSource();
    is.setCharacterStream(new StringReader(s));
    //	Document doc = db.parse(is);
    // Check to see the bid was removed from the cache
    m = redisson.hgetAll(bid.id);
    assertNull(m);
}
Also used : InputSource(org.xml.sax.InputSource) DocumentBuilder(javax.xml.parsers.DocumentBuilder) HttpPostGet(com.xrtb.common.HttpPostGet) StringReader(java.io.StringReader) Bid(com.xrtb.pojo.Bid) Map(java.util.Map) Test(org.junit.Test)

Example 9 with HttpPostGet

use of com.xrtb.common.HttpPostGet in project XRTB by benmfaul.

the class TestWinProcessing method testWinProcessingNexage.

/**
	 * Test the basic win processing system of the RTB
	 * @throws Exception on networking problems.
	 */
@Test
public void testWinProcessingNexage() throws Exception {
    HttpPostGet http = new HttpPostGet();
    redisson.del("35c22289-06e2-48e9-a0cd-94aeb79fab43");
    // Make the bid
    String s = Charset.defaultCharset().decode(ByteBuffer.wrap(Files.readAllBytes(Paths.get("./SampleBids/nexage.txt")))).toString();
    /**
		 * Send the bid
		 */
    try {
        s = http.sendPost("http://" + Config.testHost + "/rtb/bids/nexage", s, 3000000, 3000000);
    } catch (Exception error) {
        fail("Can't connect to test host: " + Config.testHost);
    }
    int code = http.getResponseCode();
    assertTrue(code == 200);
    Bid bid = null;
    System.out.println(s);
    int x = s.indexOf("{bid_id");
    assertTrue(x == -1);
    x = s.indexOf("%7Bbid_id");
    assertTrue(x == -1);
    try {
        bid = new Bid(s);
    } catch (Exception error) {
        error.printStackTrace();
        fail();
    }
    // Now retrieve the bid information from the cache
    Map m = redisson.hgetAll(bid.id);
    assertTrue(!m.isEmpty());
    String price = (String) m.get("PRICE");
    assertNotNull(price);
    assertTrue(!price.equals("0.0"));
    /**
		 * Send the win notification
		 */
    try {
        String repl = bid.nurl.replaceAll("\\$", "");
        bid.nurl = repl.replace("{AUCTION_PRICE}", ".05");
        s = http.sendPost(bid.nurl, "");
    } catch (Exception error) {
        error.printStackTrace();
        fail();
    }
    assertNotNull(s);
    /*
		 * Make sure the returned adm is not crap html 
		 */
    DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    InputSource is = new InputSource();
    is.setCharacterStream(new StringReader(s));
    //	Document doc = db.parse(is);
    // Check to see the bid was removed from the cache
    m = redisson.hgetAll(bid.id);
    assertNull(m);
}
Also used : InputSource(org.xml.sax.InputSource) DocumentBuilder(javax.xml.parsers.DocumentBuilder) HttpPostGet(com.xrtb.common.HttpPostGet) StringReader(java.io.StringReader) Bid(com.xrtb.pojo.Bid) Map(java.util.Map) Test(org.junit.Test)

Example 10 with HttpPostGet

use of com.xrtb.common.HttpPostGet in project XRTB by benmfaul.

the class TestWinProcessing method testWinProcessingAtomx.

@Test
public void testWinProcessingAtomx() throws Exception {
    HttpPostGet http = new HttpPostGet();
    redisson.del("35c22289-06e2-48e9-a0cd-94aeb79fab43");
    // Make the bid
    String s = Charset.defaultCharset().decode(ByteBuffer.wrap(Files.readAllBytes(Paths.get("./SampleBids/nexage.txt")))).toString();
    /**
		 * Send the bid
		 */
    try {
        s = http.sendPost("http://" + Config.testHost + "/rtb/bids/atomx", s, 3000000, 3000000);
    } catch (Exception error) {
        fail("Can't connect to test host: " + Config.testHost);
    }
    int code = http.getResponseCode();
    assertTrue(code == 200);
    Bid bid = null;
    System.out.println(s);
    int x = s.indexOf("{bid_id");
    assertTrue(x == -1);
    x = s.indexOf("%7Bbid_id");
    assertTrue(x == -1);
    try {
        bid = new Bid(s);
    } catch (Exception error) {
        error.printStackTrace();
        fail();
    }
    // Now retrieve the bid information from the cache
    Map m = redisson.hgetAll(bid.id);
    assertTrue(!m.isEmpty());
    String price = (String) m.get("PRICE");
    assertNotNull(price);
    assertTrue(!price.equals("0.0"));
    /**
		 * Send the win notification
		 */
    try {
        String repl = bid.nurl.replaceAll("\\$", "");
        bid.nurl = repl.replace("{AUCTION_PRICE}", ".05");
        s = http.sendPost(bid.nurl, "");
    } catch (Exception error) {
        error.printStackTrace();
        fail();
    }
    System.out.println(s);
    x = s.indexOf("{creative_");
    assertTrue(x == -1);
    /*
		 * Make sure the returned adm is not crap html 
		 */
    DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    InputSource is = new InputSource();
    is.setCharacterStream(new StringReader(s));
    //	Document doc = db.parse(is);
    // Check to see the bid was removed from the cache
    m = redisson.hgetAll(bid.id);
    assertNull(m);
}
Also used : InputSource(org.xml.sax.InputSource) DocumentBuilder(javax.xml.parsers.DocumentBuilder) HttpPostGet(com.xrtb.common.HttpPostGet) StringReader(java.io.StringReader) Bid(com.xrtb.pojo.Bid) Map(java.util.Map) Test(org.junit.Test)

Aggregations

HttpPostGet (com.xrtb.common.HttpPostGet)57 Test (org.junit.Test)40 Map (java.util.Map)24 List (java.util.List)13 Bid (com.xrtb.pojo.Bid)9 BufferedReader (java.io.BufferedReader)7 FileReader (java.io.FileReader)7 HashMap (java.util.HashMap)6 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)5 StringReader (java.io.StringReader)5 ArrayList (java.util.ArrayList)5 DocumentBuilder (javax.xml.parsers.DocumentBuilder)5 InputSource (org.xml.sax.InputSource)5 GoogleBidResponse (com.xrtb.exchanges.google.GoogleBidResponse)3 CountDownLatch (java.util.concurrent.CountDownLatch)3 Campaign (com.xrtb.common.Campaign)2 Creative (com.xrtb.common.Creative)2 AdxBidResponse (com.xrtb.exchanges.adx.AdxBidResponse)2 GoogleBidRequest (com.xrtb.exchanges.google.GoogleBidRequest)2 ByteArrayInputStream (java.io.ByteArrayInputStream)2