16772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru/* 26772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru * Copyright (C) 2012 The Android Open Source Project 36772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru * 46772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru * Licensed under the Apache License, Version 2.0 (the "License"); 56772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru * you may not use this file except in compliance with the License. 66772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru * You may obtain a copy of the License at 76772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru * 86772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru * http://www.apache.org/licenses/LICENSE-2.0 96772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru * 106772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru * Unless required by applicable law or agreed to in writing, software 116772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru * distributed under the License is distributed on an "AS IS" BASIS, 126772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru * See the License for the specific language governing permissions and 146772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru * limitations under the License. 156772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru */ 166772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru 176772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Querupackage com.android.volley.toolbox; 186772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru 196772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queruimport android.test.AndroidTestCase; 206772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru 216772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Querupublic class ByteArrayPoolTest extends AndroidTestCase { 226772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru public void testReusesBuffer() { 236772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru ByteArrayPool pool = new ByteArrayPool(32); 246772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru 256772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru byte[] buf1 = pool.getBuf(16); 266772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru byte[] buf2 = pool.getBuf(16); 276772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru 286772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru pool.returnBuf(buf1); 296772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru pool.returnBuf(buf2); 306772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru 316772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru byte[] buf3 = pool.getBuf(16); 326772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru byte[] buf4 = pool.getBuf(16); 336772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru assertTrue(buf3 == buf1 || buf3 == buf2); 346772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru assertTrue(buf4 == buf1 || buf4 == buf2); 356772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru assertTrue(buf3 != buf4); 366772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru } 376772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru 386772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru public void testObeysSizeLimit() { 396772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru ByteArrayPool pool = new ByteArrayPool(32); 406772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru 416772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru byte[] buf1 = pool.getBuf(16); 426772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru byte[] buf2 = pool.getBuf(16); 436772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru byte[] buf3 = pool.getBuf(16); 446772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru 456772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru pool.returnBuf(buf1); 466772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru pool.returnBuf(buf2); 476772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru pool.returnBuf(buf3); 486772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru 496772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru byte[] buf4 = pool.getBuf(16); 506772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru byte[] buf5 = pool.getBuf(16); 516772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru byte[] buf6 = pool.getBuf(16); 526772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru 536772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru assertTrue(buf4 == buf2 || buf4 == buf3); 546772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru assertTrue(buf5 == buf2 || buf5 == buf3); 556772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru assertTrue(buf4 != buf5); 566772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru assertTrue(buf6 != buf1 && buf6 != buf2 && buf6 != buf3); 576772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru } 586772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru 596772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru public void testReturnsBufferWithRightSize() { 606772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru ByteArrayPool pool = new ByteArrayPool(32); 616772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru 626772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru byte[] buf1 = pool.getBuf(16); 636772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru pool.returnBuf(buf1); 646772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru 656772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru byte[] buf2 = pool.getBuf(17); 666772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru assertNotSame(buf2, buf1); 676772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru 686772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru byte[] buf3 = pool.getBuf(15); 696772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru assertSame(buf3, buf1); 706772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru } 716772bce3d3322ccbcf6481545ffe895d5d401b39Jean-Baptiste Queru} 72