/*
* Copyright (c) 2013-2015, Parallel Universe Software Co. All rights reserved.
*
* This program and the accompanying materials are dual-licensed under
* either the terms of the Eclipse Public License v1.0 as published by
* the Eclipse Foundation
*
* or (per the licensee's choosing)
*
* under the terms of the GNU Lesser General Public License version 3.0
* as published by the Free Software Foundation.
*/
package co.paralleluniverse.strands.channels.reactivestreams;
import co.paralleluniverse.strands.channels.Topic;
import static co.paralleluniverse.strands.channels.reactivestreams.TestHelper.*;
import org.reactivestreams.Publisher;
import org.reactivestreams.tck.PublisherVerification;
import org.reactivestreams.tck.TestEnvironment;
import org.testng.annotations.*;
public class TopicPublisherTest extends PublisherVerification<Integer> {
private static final long DEFAULT_TIMEOUT_MILLIS = 300L;
private static final long PUBLISHER_REFERENCE_CLEANUP_TIMEOUT_MILLIS = 500L;
private static final int DELAY_AMOUNT = 20;
private final boolean delay;
@Factory(dataProvider = "params")
public TopicPublisherTest(boolean delay) {
// super(new TestEnvironment());
super(new TestEnvironment(DEFAULT_TIMEOUT_MILLIS), PUBLISHER_REFERENCE_CLEANUP_TIMEOUT_MILLIS);
this.delay = delay;
}
@DataProvider(name = "params")
public static Object[][] data() {
return new Object[][]{{true}};
}
@Override
public long maxElementsFromPublisher() {
return Long.MAX_VALUE - 1;
}
@Override
public long boundedDepthOfOnNextAndRequestRecursion() {
return 1;
}
@Override
public Publisher<Integer> createPublisher(final long elements) {
return ReactiveStreams.toPublisher(startPublisherFiber(new Topic<Integer>(), delay ? DELAY_AMOUNT : 0, elements));
}
@Override
public Publisher<Integer> createFailedPublisher() {
return ReactiveStreams.toPublisher(startFailedPublisherFiber(new Topic<Integer>(), delay ? DELAY_AMOUNT : 0));
}
@Test
public void testNothing() {
}
}