From 3c35395cf775f21764ea6a2cfb9eb916c17b2ee2 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Sat, 20 Feb 2016 21:01:52 +0300 Subject: [PATCH] Minor: refactor some tests to use nested classes. --- .../stdlib/test/collections/CollectionTest.kt | 18 ++++++- .../stdlib/test/collections/IterableTests.kt | 27 ++++++---- libraries/stdlib/test/text/StringTest.kt | 22 +++++++- libraries/stdlib/test/utils/TODOTest.kt | 50 ++++++++++++------- 4 files changed, 88 insertions(+), 29 deletions(-) diff --git a/libraries/stdlib/test/collections/CollectionTest.kt b/libraries/stdlib/test/collections/CollectionTest.kt index 26e43925fc4..b17b6dc077a 100644 --- a/libraries/stdlib/test/collections/CollectionTest.kt +++ b/libraries/stdlib/test/collections/CollectionTest.kt @@ -1,3 +1,19 @@ +/* + * Copyright 2010-2016 JetBrains s.r.o. + * + * 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 test.collections import java.util.* @@ -594,7 +610,7 @@ class CollectionTest { assertFalse(hashSetOf().contains(12)) assertTrue(listOf(15, 19, 20).contains(15)) - assertTrue(IterableWrapper(hashSetOf(45, 14, 13)).contains(14)) + assertTrue(hashSetOf(45, 14, 13).toIterable().contains(14)) } @test fun min() { diff --git a/libraries/stdlib/test/collections/IterableTests.kt b/libraries/stdlib/test/collections/IterableTests.kt index 29fad376485..bfc264796c3 100644 --- a/libraries/stdlib/test/collections/IterableTests.kt +++ b/libraries/stdlib/test/collections/IterableTests.kt @@ -1,3 +1,19 @@ +/* + * Copyright 2010-2016 JetBrains s.r.o. + * + * 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 test.collections import org.junit.Test @@ -5,15 +21,8 @@ import java.util.ArrayList import java.util.LinkedHashSet import kotlin.test.* -fun iterableOf(vararg items: T): Iterable = IterableWrapper(items.toList()) - -class IterableWrapper(collection: Iterable) : Iterable { - private val collection = collection - - override fun iterator(): Iterator { - return collection.iterator() - } -} +fun iterableOf(vararg items: T): Iterable = Iterable { items.iterator() } +fun Iterable.toIterable(): Iterable = Iterable { this.iterator() } class IterableTest : OrderedIterableTests>(iterableOf("foo", "bar"), iterableOf()) class SetTest : IterableTests>(setOf("foo", "bar"), setOf()) diff --git a/libraries/stdlib/test/text/StringTest.kt b/libraries/stdlib/test/text/StringTest.kt index 7da4f4742d1..d52e5b94711 100644 --- a/libraries/stdlib/test/text/StringTest.kt +++ b/libraries/stdlib/test/text/StringTest.kt @@ -1,10 +1,24 @@ +/* + * Copyright 2010-2016 JetBrains s.r.o. + * + * 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 test.text import kotlin.test.* import org.junit.Test as test -// could not be local inside isEmptyAndBlank, because non-toplevel declarations is not yet supported for JS -class IsEmptyCase(val value: String?, val isNull: Boolean = false, val isEmpty: Boolean = false, val isBlank: Boolean = false) fun createString(content: String): CharSequence = content fun createStringBuilder(content: String): CharSequence = StringBuilder((content as Any).toString()) // required for Rhino JS @@ -36,6 +50,10 @@ fun Char.isAsciiUpperCase() = this in 'A'..'Z' class StringTest { + // could not be local inside isEmptyAndBlank, because local declarations is not yet supported for JS + // TODO: move inside after KT-11030 is implemented + class IsEmptyCase(val value: String?, val isNull: Boolean = false, val isEmpty: Boolean = false, val isBlank: Boolean = false) + @test fun isEmptyAndBlank() = withOneCharSequenceArg { arg1 -> val cases = listOf( diff --git a/libraries/stdlib/test/utils/TODOTest.kt b/libraries/stdlib/test/utils/TODOTest.kt index 904452c9251..9ec7358221e 100644 --- a/libraries/stdlib/test/utils/TODOTest.kt +++ b/libraries/stdlib/test/utils/TODOTest.kt @@ -1,31 +1,47 @@ +/* + * Copyright 2010-2016 JetBrains s.r.o. + * + * 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 test.utils import kotlin.* import kotlin.test.* import org.junit.Test as test -private class PartiallyImplementedClass { - public val prop: String get() = TODO() -// fun method1() = TODO() as String // <- doesn't compile in JS - public fun method2(): Int = TODO() +class TODOTest { + private class PartiallyImplementedClass { + public val prop: String get() = TODO() + // fun method1() = TODO() as String // <- doesn't compile in JS + public fun method2(): Int = TODO() - public fun method3(switch: Boolean, value: String): String { - if (!switch) - TODO("what if false") - else { - if (value.length < 3) - throw TODO("write message") + public fun method3(switch: Boolean, value: String): String { + if (!switch) + TODO("what if false") + else { + if (value.length < 3) + throw TODO("write message") + } + + return value } - return value + public fun method4() { + TODO() + } } - public fun method4() { - TODO() - } -} - -class TODOTest { private fun assertNotImplemented(block: () -> Unit) { assertTrue(assertFails(block) is NotImplementedError) }