/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 gobblin.writer.test;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
import org.testng.Assert;
import org.testng.annotations.Test;
import gobblin.source.workunit.WorkUnit;
import gobblin.writer.Destination;
import gobblin.writer.Destination.DestinationType;
/**
* Unit tests for {@link GobblinTestEventBusWriter}
*/
public class GobblinTestEventBusWriterTest {
@Test
public void testWrite() throws IOException, InterruptedException, TimeoutException {
final String eventBusId = "/tmp/GobblinTestEventBusWriterTest/testWrite";
try(TestingEventBusAsserter asserter = new TestingEventBusAsserter(eventBusId)) {
GobblinTestEventBusWriter writer =
GobblinTestEventBusWriter.builder().withEventBusId(eventBusId).build();
writer.write("event1");
writer.write("event2");
writer.write("event3");
asserter.assertNextValueEq("event1");
asserter.assertNextValueEq("event2");
asserter.assertNextValueEq("event3");
Assert.assertEquals(writer.recordsWritten(), 3);
}
}
@Test
public void testBuilder() throws IOException, InterruptedException, TimeoutException {
final String eventBusId = "/GobblinTestEventBusWriterTest/testBuilder";
GobblinTestEventBusWriter.Builder writerBuilder = new GobblinTestEventBusWriter.Builder();
WorkUnit wu = WorkUnit.createEmpty();
wu.setProp(GobblinTestEventBusWriter.FULL_EVENTBUSID_KEY, eventBusId);
writerBuilder.writeTo(Destination.of(DestinationType.HDFS, wu));
Assert.assertEquals(writerBuilder.getEventBusId(), eventBusId);
try(TestingEventBusAsserter asserter = new TestingEventBusAsserter(eventBusId)) {
GobblinTestEventBusWriter writer = writerBuilder.build();
writer.write("event1");
writer.write("event2");
asserter.assertNextValueEq("event1");
asserter.assertNextValueEq("event2");
Assert.assertEquals(writer.recordsWritten(), 2);
}
}
}