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}