Home | History | Annotate | Download | only in collect
      1 /*
      2  * Copyright (C) 2012 The Guava Authors
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  * http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.google.common.collect;
     18 
     19 import java.util.concurrent.BlockingDeque;
     20 import java.util.concurrent.TimeUnit;
     21 
     22 /**
     23  * Test for {@link ForwardingBlockingDeque}
     24  *
     25  * @author Emily Soldal
     26  */
     27 public class ForwardingBlockingDequeTest extends ForwardingTestCase {
     28   private BlockingDeque<String> forward;
     29 
     30   /*
     31    * Class parameters must be raw, so we can't create a proxy with generic
     32    * type arguments. The created proxy only records calls and returns null, so
     33    * the type is irrelevant at runtime.
     34    */
     35   @SuppressWarnings("unchecked")
     36   @Override protected void setUp() throws Exception {
     37     super.setUp();
     38     final BlockingDeque<String> deque = createProxyInstance(BlockingDeque.class);
     39     forward = new ForwardingBlockingDeque<String>() {
     40       @Override protected BlockingDeque<String> delegate() {
     41         return deque;
     42       }
     43     };
     44   }
     45 
     46   public void testRemainingCapacity() {
     47     forward.remainingCapacity();
     48     assertEquals("[remainingCapacity]", getCalls());
     49   }
     50 
     51   public void testPutFirst_T() throws InterruptedException {
     52     forward.putFirst("asf");
     53     assertEquals("[putFirst(Object)]", getCalls());
     54   }
     55 
     56   public void testPutLast_T() throws InterruptedException {
     57     forward.putFirst("asf");
     58     assertEquals("[putFirst(Object)]", getCalls());
     59   }
     60 
     61   public void testOfferFirst_T() throws InterruptedException {
     62     forward.offerFirst("asf", 2L, TimeUnit.SECONDS);
     63     assertEquals("[offerFirst(Object,long,TimeUnit)]", getCalls());
     64   }
     65 
     66   public void testOfferLast_T() throws InterruptedException {
     67     forward.offerLast("asf", 2L, TimeUnit.SECONDS);
     68     assertEquals("[offerLast(Object,long,TimeUnit)]", getCalls());
     69   }
     70 
     71   public void testTakeFirst() throws InterruptedException {
     72     forward.takeFirst();
     73     assertEquals("[takeFirst]", getCalls());
     74   }
     75 
     76   public void testTakeLast() throws InterruptedException {
     77     forward.takeLast();
     78     assertEquals("[takeLast]", getCalls());
     79   }
     80 
     81   public void testPollFirst() throws InterruptedException {
     82     forward.pollFirst(2L, TimeUnit.SECONDS);
     83     assertEquals("[pollFirst(long,TimeUnit)]", getCalls());
     84   }
     85 
     86   public void testPollLast() throws InterruptedException {
     87     forward.pollLast(2L, TimeUnit.SECONDS);
     88     assertEquals("[pollLast(long,TimeUnit)]", getCalls());
     89   }
     90 
     91   public void testPut_T() throws InterruptedException {
     92     forward.put("asf");
     93     assertEquals("[put(Object)]", getCalls());
     94   }
     95 
     96   public void testOffer_T() throws InterruptedException {
     97     forward.offer("asf", 2L, TimeUnit.SECONDS);
     98     assertEquals("[offer(Object,long,TimeUnit)]", getCalls());
     99   }
    100 
    101   public void testTake() throws InterruptedException {
    102     forward.take();
    103     assertEquals("[take]", getCalls());
    104   }
    105 
    106   public void testPoll() throws InterruptedException {
    107     forward.poll(2L, TimeUnit.SECONDS);
    108     assertEquals("[poll(long,TimeUnit)]", getCalls());
    109   }
    110 
    111   public void testDrainTo_T() {
    112     forward.drainTo(Lists.newArrayList());
    113     assertEquals("[drainTo(Collection)]", getCalls());
    114   }
    115 
    116   public void testDrainTo_T_maxElements() {
    117     forward.drainTo(Lists.newArrayList(), 3);
    118     assertEquals("[drainTo(Collection,int)]", getCalls());
    119   }
    120 }
    121