1c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton/* 2c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton * Copyright (C) 2018 The Android Open Source Project 3c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton * 4c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton * Licensed under the Apache License, Version 2.0 (the "License"); 5c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton * you may not use this file except in compliance with the License. 6c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton * You may obtain a copy of the License at 7c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton * 8c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton * http://www.apache.org/licenses/LICENSE-2.0 9c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton * 10c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton * Unless required by applicable law or agreed to in writing, software 11c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton * distributed under the License is distributed on an "AS IS" BASIS, 12c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton * See the License for the specific language governing permissions and 14c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton * limitations under the License. 15c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton */ 16c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton 179c80550cbbe357a89e2abeeb9c7769fcaefc3a65Jake Whartonpackage androidx.core.content 18c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton 199c80550cbbe357a89e2abeeb9c7769fcaefc3a65Jake Whartonimport androidx.testutils.assertThrows 20c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Whartonimport org.junit.Assert.assertArrayEquals 21c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Whartonimport org.junit.Assert.assertEquals 22c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Whartonimport org.junit.Assert.assertNull 23c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Whartonimport org.junit.Test 24c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Whartonimport java.util.concurrent.atomic.AtomicInteger 25c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton 26c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Whartonclass ContentValuesTest { 27c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton @Test fun valuesOfValid() { 28c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton val values = contentValuesOf( 29ec87f3d0ed8fb2a23ee2bbe8b323fdd7bdcbf4eaJake Wharton "null" to null, 30ec87f3d0ed8fb2a23ee2bbe8b323fdd7bdcbf4eaJake Wharton "string" to "string", 31ec87f3d0ed8fb2a23ee2bbe8b323fdd7bdcbf4eaJake Wharton "byte" to 1.toByte(), 32ec87f3d0ed8fb2a23ee2bbe8b323fdd7bdcbf4eaJake Wharton "short" to 1.toShort(), 33ec87f3d0ed8fb2a23ee2bbe8b323fdd7bdcbf4eaJake Wharton "int" to 1, 34ec87f3d0ed8fb2a23ee2bbe8b323fdd7bdcbf4eaJake Wharton "long" to 1L, 35ec87f3d0ed8fb2a23ee2bbe8b323fdd7bdcbf4eaJake Wharton "float" to 1f, 36ec87f3d0ed8fb2a23ee2bbe8b323fdd7bdcbf4eaJake Wharton "double" to 1.0, 37ec87f3d0ed8fb2a23ee2bbe8b323fdd7bdcbf4eaJake Wharton "boolean" to true, 38ec87f3d0ed8fb2a23ee2bbe8b323fdd7bdcbf4eaJake Wharton "byteArray" to byteArrayOf() 39c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton ) 40c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton assertEquals(10, values.size()) 41c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton assertNull(values.get("null")) 42c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton assertEquals("string", values.get("string")) 43c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton assertEquals(1.toByte(), values.get("byte")) 44c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton assertEquals(1.toShort(), values.get("short")) 45c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton assertEquals(1, values.get("int")) 46c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton assertEquals(1L, values.get("long")) 47c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton assertEquals(1f, values.get("float")) 48c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton assertEquals(1.0, values.get("double")) 49c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton assertEquals(true, values.get("boolean")) 50c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton assertArrayEquals(byteArrayOf(), values.get("byteArray") as ByteArray) 51c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton } 52c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton 53c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton @Test fun valuesOfInvalid() { 54c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton assertThrows<IllegalArgumentException> { 55c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton contentValuesOf("nope" to AtomicInteger(1)) 56ec87f3d0ed8fb2a23ee2bbe8b323fdd7bdcbf4eaJake Wharton }.hasMessageThat().isEqualTo( 57ec87f3d0ed8fb2a23ee2bbe8b323fdd7bdcbf4eaJake Wharton "Illegal value type java.util.concurrent.atomic.AtomicInteger for key \"nope\"") 58c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton } 59c8d88ff8d46317d0cd6071602f1691ca889ac375Jake Wharton} 60