/**
* Copyright (C) 2012-2014 Gist Labs, LLC. (http://gistlabs.com)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package com.gistlabs.mechanize.cache;
import static org.junit.Assert.*;
import java.util.Date;
import java.util.concurrent.ConcurrentLinkedQueue;
import org.apache.http.Header;
import org.apache.http.HeaderElement;
import org.apache.http.impl.cookie.DateParseException;
import org.apache.http.impl.cookie.DateUtils;
import org.apache.http.message.BasicHeader;
import org.junit.Test;
public class HttpCacheFilterTest {
@Test
public void confirmHeaderElementParameterAssumptions() {
Header header = new BasicHeader("Cache-Control", "max-age=3600,must-revalidate");
assertEquals("Cache-Control", header.getName());
HeaderElement[] elements = header.getElements();
assertEquals(2, elements.length);
assertEquals("max-age", elements[0].getName());
assertEquals("3600", elements[0].getValue());
assertEquals("must-revalidate", elements[1].getName());
assertNull(elements[1].getValue());
}
@SuppressWarnings("deprecation")
@Test
public void confirmDateUtil() throws DateParseException {
Date date = DateUtils.parseDate("Sun, 09 Aug 2009 01:56:14 GMT");
assertEquals("9 Aug 2009 01:56:14 GMT", date.toGMTString());
}
@Test
public void confirmConcurrentLinkedQueueOfferSemantics() {
ConcurrentLinkedQueue<String> queue = new ConcurrentLinkedQueue<String>();
assertTrue(queue.offer("a"));
assertEquals(1, queue.size());
assertTrue(queue.offer("b"));
assertEquals(2, queue.size());
assertEquals("a", queue.peek());
assertTrue(queue.offer("a"));
//assertEquals(2, queue.size());
//assertEquals("b", queue.peek());
assertEquals(3, queue.size());
assertEquals("a", queue.peek());
}
}