/
githubmirror
/
RxJava
Обзор
Документация
Войти
/
githubmirror
/
RxJava
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
4.x
src/test/java/io/reactivex/rxjava4/internal/functions/FunctionsTest.java
179 строк
6 KB
David Karnok
4.x: Convert from JUnit 4 to JUnit 6 (#8202)
30 июн 2026, 12:01
Не верифицирован
30 июн 2026, 12:01
531388f
Код
Авторство
О чём код?
/* * Copyright (c) 2016-present, RxJava Contributors. * * 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 io.reactivex.rxjava4.internal.functions; import static org.junit.jupiter.api.Assertions.*; import java.lang.reflect.Method; import java.util.List; import org.junit.jupiter.api.Test; import io.reactivex.rxjava4.core.RxJavaTest; import io.reactivex.rxjava4.exceptions.TestException; import io.reactivex.rxjava4.functions.*; import io.reactivex.rxjava4.internal.functions.Functions.*; import io.reactivex.rxjava4.internal.util.ExceptionHelper; import io.reactivex.rxjava4.plugins.RxJavaPlugins; import io.reactivex.rxjava4.testsupport.TestHelper; public class FunctionsTest extends RxJavaTest { @Test public void utilityClass() { TestHelper.checkUtilityClass(Functions.class); } @SuppressWarnings("unchecked") @Test public void hashSetCallableEnum() { // inlined TestHelper.checkEnum due to access restrictions try { Method m = Functions.HashSetSupplier.class.getMethod("values"); m.setAccessible(true); Method e = Functions.HashSetSupplier.class.getMethod("valueOf", String.class); e.setAccessible(true); for (Enum<HashSetSupplier> o : (Enum<HashSetSupplier>[])m.invoke(null)) { assertSame(o, e.invoke(null, o.name())); } } catch (Throwable ex) { throw ExceptionHelper.wrapOrThrow(ex); } } @SuppressWarnings("unchecked") @Test public void naturalComparatorEnum() { // inlined TestHelper.checkEnum due to access restrictions try { Method m = Functions.NaturalComparator.class.getMethod("values"); m.setAccessible(true); Method e = Functions.NaturalComparator.class.getMethod("valueOf", String.class); e.setAccessible(true); for (Enum<NaturalComparator> o : (Enum<NaturalComparator>[])m.invoke(null)) { assertSame(o, e.invoke(null, o.name())); } } catch (Throwable ex) { throw ExceptionHelper.wrapOrThrow(ex); } } @Test public void booleanSupplierPredicateReverse() throws Throwable { BooleanSupplier s = () -> false; assertTrue(Functions.predicateReverseFor(s).test(1)); s = () -> true; assertFalse(Functions.predicateReverseFor(s).test(1)); } @Test public void toFunction2() throws Throwable { assertThrows(IllegalArgumentException.class, () -> { Functions.toFunction((BiFunction<Integer, Integer, Integer>) (_, _) -> null).apply(new Object[20]); }); } @Test public void toFunction3() throws Throwable { assertThrows(IllegalArgumentException.class, () -> { Functions.toFunction((Function3<Integer, Integer, Integer, Integer>) (_, _, _) -> null).apply(new Object[20]); }); } @Test public void toFunction4() throws Throwable { assertThrows(IllegalArgumentException.class, () -> { Functions.toFunction((Function4<Integer, Integer, Integer, Integer, Integer>) (_, _, _, _) -> null).apply(new Object[20]); }); } @Test public void toFunction5() throws Throwable { assertThrows(IllegalArgumentException.class, () -> { Functions.toFunction((Function5<Integer, Integer, Integer, Integer, Integer, Integer>) (_, _, _, _, _) -> null).apply(new Object[20]); }); } @Test public void toFunction6() throws Throwable { assertThrows(IllegalArgumentException.class, () -> { Functions.toFunction((Function6<Integer, Integer, Integer, Integer, Integer, Integer, Integer>) (_, _, _, _, _, _) -> null).apply(new Object[20]); }); } @Test public void toFunction7() throws Throwable { assertThrows(IllegalArgumentException.class, () -> { Functions.toFunction((Function7<Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer>) (_, _, _, _, _, _, _) -> null).apply(new Object[20]); }); } @Test public void toFunction8() throws Throwable { assertThrows(IllegalArgumentException.class, () -> { Functions.toFunction((Function8<Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer>) (_, _, _, _, _, _, _, _) -> null).apply(new Object[20]); }); } @Test public void toFunction9() throws Throwable { assertThrows(IllegalArgumentException.class, () -> { Functions.toFunction((Function9<Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer>) (_, _, _, _, _, _, _, _, _) -> null).apply(new Object[20]); }); } @Test public void identityFunctionToString() { assertEquals("IdentityFunction", Functions.identity().toString()); } @Test public void emptyActionToString() { assertEquals("EmptyAction", Functions.EMPTY_ACTION.toString()); } @Test public void emptyRunnableToString() { assertEquals("EmptyRunnable", Functions.EMPTY_RUNNABLE.toString()); } @Test public void emptyConsumerToString() { assertEquals("EmptyConsumer", Functions.EMPTY_CONSUMER.toString()); } @Test public void errorConsumerEmpty() throws Throwable { List<Throwable> errors = TestHelper.trackPluginErrors(); try { Functions.ERROR_CONSUMER.accept(new TestException()); TestHelper.assertUndeliverable(errors, 0, TestException.class); assertEquals(1, errors.size(), errors.toString()); } finally { RxJavaPlugins.reset(); } } }