/* * Copyright (c) 2008-2012, Hazel Bilisim Ltd. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.hazelcast.util; import org.junit.Test; import org.junit.runner.RunWith; import static org.junit.Assert.*; @RunWith(com.hazelcast.util.RandomBlockJUnit4ClassRunner.class) public class SimpleBlockingQueueTest { @Test public void testPriority() { SimpleBlockingQueue q = new SimpleBlockingQueue(true); for (int i = 0; i < 1000; i++) { q.offer(i); } for (int i = 0; i < 1000; i++) { assertEquals(i, q.poll()); } assertNull(q.poll()); for (int i = 0; i < 1000; i++) { q.offer(i); } Prioritized p1 = new Prioritized() { }; Prioritized p2 = new Prioritized() { }; q.offer(p1); q.offer(p2); for (int i = 1000; i < 2000; i++) { q.offer(i); } assertTrue(p1 == q.poll()); assertTrue(p2 == q.poll()); for (int i = 0; i < 2000; i++) { assertEquals(i, q.poll()); } } }