1f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets/* 2f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets * Copyright 2018 The Android Open Source Project 3f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets * 4f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets * Licensed under the Apache License, Version 2.0 (the "License"); 5f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets * you may not use this file except in compliance with the License. 6f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets * You may obtain a copy of the License at 7f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets * 8f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets * http://www.apache.org/licenses/LICENSE-2.0 9f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets * 10f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets * Unless required by applicable law or agreed to in writing, software 11f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets * distributed under the License is distributed on an "AS IS" BASIS, 12f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets * See the License for the specific language governing permissions and 14f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets * limitations under the License. 15f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets */ 16f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets 171503d52153986fdcfe7e744795010708b7410892Ian Lakepackage androidx.navigation.safe.args.generator 18f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets 191503d52153986fdcfe7e744795010708b7410892Ian Lakeimport androidx.navigation.safe.args.generator.models.ResReference 20f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinetsimport org.hamcrest.CoreMatchers.`is` 21f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinetsimport org.hamcrest.MatcherAssert.assertThat 22f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinetsimport org.junit.Test 23f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinetsimport org.junit.runner.RunWith 24f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinetsimport org.junit.runners.JUnit4 25f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets 26f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets@RunWith(JUnit4::class) 279ca584405af88767f97ec06fbb5f5e1b7e98b1b4Sergey Vasilinetsclass WritableValueTest { 28f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets 29f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets @Test 30f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets fun testIntWrite() { 319ca584405af88767f97ec06fbb5f5e1b7e98b1b4Sergey Vasilinets assertThat(IntValue("-10").write().toString(), `is`("-10")) 329ca584405af88767f97ec06fbb5f5e1b7e98b1b4Sergey Vasilinets assertThat(IntValue("11").write().toString(), `is`("11")) 33f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets } 34f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets 35f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets @Test 369ca584405af88767f97ec06fbb5f5e1b7e98b1b4Sergey Vasilinets fun testStringWrite() { 379ca584405af88767f97ec06fbb5f5e1b7e98b1b4Sergey Vasilinets assertThat(StringValue("foo").write().toString(), `is`("\"foo\"")) 38f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets } 39f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets 40f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets @Test 419ca584405af88767f97ec06fbb5f5e1b7e98b1b4Sergey Vasilinets fun testReferenceWrite() { 429ca584405af88767f97ec06fbb5f5e1b7e98b1b4Sergey Vasilinets assertThat(ReferenceValue(ResReference("foo", "id", "bla")).write().toString(), 439ca584405af88767f97ec06fbb5f5e1b7e98b1b4Sergey Vasilinets `is`("foo.R.id.bla")) 44f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets } 45f49d36a214375ac9a735ab9af9e1b3a4b9d2a3cdSergey Vasilinets}