@Test public void testGroupBySplitGroupByJoin() throws Exception { getPlatform().copyFromLocal( inputFileLower ); Tap source = getPlatform().getTextFile( new Fields( "offset", "line" ), inputFileLower ); Tap sink = getPlatform().getTextFile( new Fields( "line" ), getOutputPath( "sink" ), SinkMode.REPLACE ); Function splitter = new RegexSplitter( new Fields( "num", "char" ), " " ); Pipe pipeFirst = new Pipe( "first" ); pipeFirst = new Each( pipeFirst, new Fields( "line" ), splitter ); pipeFirst = new GroupBy( pipeFirst, new Fields( "num" ) ); pipeFirst = new Every( pipeFirst, new Fields( "char" ), new First( new Fields( "firstFirst" ) ), Fields.ALL ); Pipe pipeSecond = new Pipe( "second", pipeFirst ); pipeSecond = new Each( pipeSecond, new Identity() ); pipeSecond = new GroupBy( pipeSecond, new Fields( "num" ) ); pipeSecond = new Every( pipeSecond, new Fields( "firstFirst" ), new First( new Fields( "secondFirst" ) ), Fields.ALL ); pipeSecond = new GroupBy( pipeSecond, new Fields( "num" ) ); pipeSecond = new Every( pipeSecond, new Fields( "secondFirst" ), new First( new Fields( "thirdFirst" ) ), Fields.ALL ); Pipe splice = new HashJoin( pipeFirst, new Fields( "num" ), pipeSecond, new Fields( "num" ), Fields.size( 4 ) ); Flow flow = getPlatform().getFlowConnector().connect( source, sink, splice ); flow.complete(); validateLength( flow, 5, null ); List<Tuple> values = getSinkAsList( flow ); assertTrue( values.contains( new Tuple( "1\ta\t1\ta" ) ) ); assertTrue( values.contains( new Tuple( "2\tb\t2\tb" ) ) ); assertTrue( values.contains( new Tuple( "3\tc\t3\tc" ) ) ); assertTrue( values.contains( new Tuple( "4\td\t4\td" ) ) ); assertTrue( values.contains( new Tuple( "5\te\t5\te" ) ) ); }
@Test public void testCoGroupWithResultGroupFields() throws Exception { Tap sourceLower = new Hfs( new TextLine( new Fields( "offset", "line" ) ), "foo" ); Tap sourceUpper = new Hfs( new TextLine( new Fields( "offset", "line" ) ), "bar" ); Map sources = new HashMap(); sources.put( "lower", sourceLower ); sources.put( "upper", sourceUpper ); Function splitter = new RegexSplitter( new Fields( "num", "char" ), " " ); // using null pos so all fields are written Tap sink = new Hfs( new TextLine(), "/complex/cogroup/", SinkMode.REPLACE ); Pipe pipeLower = new Each( new Pipe( "lower" ), new Fields( "line" ), splitter ); Pipe pipeUpper = new Each( new Pipe( "upper" ), new Fields( "line" ), splitter ); Pipe splice = new CoGroup( pipeLower, new Fields( "num" ), pipeUpper, new Fields( "num" ), new Fields( "num1", "lhs", "num2", "rhs" ), new Fields( "somenum", "somenum2" ) ); splice = new Every( splice, new First( new Fields( "value" ) ), new Fields( "somenum", "value" ) ); Flow countFlow = getPlatform().getFlowConnector().connect( sources, sink, splice ); }
@Test public void testFirst() { Aggregator aggregator = new First(); Tuple[] arguments = new Tuple[]{new Tuple( new Double( 1.0 ) ), new Tuple( new Double( 3.0 ) ), new Tuple( new Double( 2.0 ) ), new Tuple( new Double( 4.0 ) ), new Tuple( new Double( -5.0 ) )}; Fields resultFields = new Fields( "field" ); TupleListCollector resultEntryCollector = invokeAggregator( aggregator, arguments, resultFields ); Tuple tuple = resultEntryCollector.iterator().next(); assertEquals( "got expected value after aggregate", 1.0, tuple.getDouble( 0 ), 0.0d ); }
var first = new First({ creator: req.decoded.id, object1: [{<object1_1>},{<object1_2>},{<object1_3>},{<object1_4>}], object2: req.body.object2 });
First f = new First(); f.setSomeInt( 10 ); ... int x = f.getSomeInt();
... First first = new First(); entityManager.save(first); //<- the id is updated Second second = new Second(); second.setB(300); second.setA(first.getA()); first.setSeconds( new ArrayList()); first.getSeconds().add(second); entityManager.save(second); entityManager.getTransaction().commit();
@Test public void testGroupBySplitGroupByJoin() throws Exception { getPlatform().copyFromLocal( inputFileLower ); Tap source = getPlatform().getTextFile( new Fields( "offset", "line" ), inputFileLower ); Tap sink = getPlatform().getTextFile( new Fields( "line" ), getOutputPath( "sink" ), SinkMode.REPLACE ); Function splitter = new RegexSplitter( new Fields( "num", "char" ), " " ); Pipe pipeFirst = new Pipe( "first" ); pipeFirst = new Each( pipeFirst, new Fields( "line" ), splitter ); pipeFirst = new GroupBy( pipeFirst, new Fields( "num" ) ); pipeFirst = new Every( pipeFirst, new Fields( "char" ), new First( new Fields( "firstFirst" ) ), Fields.ALL ); Pipe pipeSecond = new Pipe( "second", pipeFirst ); pipeSecond = new Each( pipeSecond, new Identity() ); pipeSecond = new GroupBy( pipeSecond, new Fields( "num" ) ); pipeSecond = new Every( pipeSecond, new Fields( "firstFirst" ), new First( new Fields( "secondFirst" ) ), Fields.ALL ); pipeSecond = new GroupBy( pipeSecond, new Fields( "num" ) ); pipeSecond = new Every( pipeSecond, new Fields( "secondFirst" ), new First( new Fields( "thirdFirst" ) ), Fields.ALL ); Pipe splice = new HashJoin( pipeFirst, new Fields( "num" ), pipeSecond, new Fields( "num" ), Fields.size( 4 ) ); Flow flow = getPlatform().getFlowConnector().connect( source, sink, splice ); flow.complete(); validateLength( flow, 5, null ); List<Tuple> values = getSinkAsList( flow ); assertTrue( values.contains( new Tuple( "1\ta\t1\ta" ) ) ); assertTrue( values.contains( new Tuple( "2\tb\t2\tb" ) ) ); assertTrue( values.contains( new Tuple( "3\tc\t3\tc" ) ) ); assertTrue( values.contains( new Tuple( "4\td\t4\td" ) ) ); assertTrue( values.contains( new Tuple( "5\te\t5\te" ) ) ); }
@Test public void testCoGroupWithResultGroupFields() throws Exception { Tap sourceLower = new Hfs( new TextLine( new Fields( "offset", "line" ) ), "foo" ); Tap sourceUpper = new Hfs( new TextLine( new Fields( "offset", "line" ) ), "bar" ); Map sources = new HashMap(); sources.put( "lower", sourceLower ); sources.put( "upper", sourceUpper ); Function splitter = new RegexSplitter( new Fields( "num", "char" ), " " ); // using null pos so all fields are written Tap sink = new Hfs( new TextLine(), "/complex/cogroup/", SinkMode.REPLACE ); Pipe pipeLower = new Each( new Pipe( "lower" ), new Fields( "line" ), splitter ); Pipe pipeUpper = new Each( new Pipe( "upper" ), new Fields( "line" ), splitter ); Pipe splice = new CoGroup( pipeLower, new Fields( "num" ), pipeUpper, new Fields( "num" ), new Fields( "num1", "lhs", "num2", "rhs" ), new Fields( "somenum", "somenum2" ) ); splice = new Every( splice, new First( new Fields( "value" ) ), new Fields( "somenum", "value" ) ); Flow countFlow = getPlatform().getFlowConnector().connect( sources, sink, splice ); }
@Test public void testFirstN() { Aggregator aggregator = new First( 3 ); Tuple[] arguments = new Tuple[]{new Tuple( new Double( 1.0 ) ), new Tuple( new Double( 3.0 ) ), new Tuple( new Double( 2.0 ) ), new Tuple( new Double( 4.0 ) ), new Tuple( new Double( -5.0 ) )}; Fields resultFields = new Fields( "field" ); TupleListCollector resultEntryCollector = invokeAggregator( aggregator, arguments, resultFields ); Iterator<Tuple> iterator = resultEntryCollector.iterator(); assertEquals( "got expected value after aggregate", 1.0, iterator.next().getDouble( 0 ), 0.0d ); assertEquals( "got expected value after aggregate", 3.0, iterator.next().getDouble( 0 ), 0.0d ); assertEquals( "got expected value after aggregate", 2.0, iterator.next().getDouble( 0 ), 0.0d ); }
public class ExampleTest { @Test public void firstShouldCallSecond(@Mocked final Second secondMock) { new NonStrictExpectations() {{ secondMock.doJob(); result = "Mocked!!!"; }}; String actual = new First().doSecond(); assertEquals("Mocked!!!", actual); } }
Tap source = getPlatform().getTextFile( new Fields( "offset", "line" ), inputFileLower ); Tap sink = getPlatform().getTextFile( new Fields( "line" ), getOutputPath( "sink" ), SinkMode.REPLACE ); Function splitter = new RegexSplitter( new Fields( "num", "char" ), " " ); pipeFirst = new Each( pipeFirst, new Fields( "line" ), splitter ); pipeFirst = new GroupBy( pipeFirst, new Fields( "num" ) ); pipeFirst = new Every( pipeFirst, new Fields( "char" ), new First( new Fields( "firstFirst" ) ), Fields.ALL ); pipeSecond = new Each( pipeSecond, new Identity() ); pipeSecond = new GroupBy( pipeSecond, new Fields( "num" ) ); pipeSecond = new Every( pipeSecond, new Fields( "firstFirst" ), new First( new Fields( "secondFirst" ) ), Fields.ALL ); Pipe splice = new HashJoin( pipeFirst, new Fields( "num" ), pipeSecond, new Fields( "num" ), Fields.size( 4 ) );
@Test public void testCoGroupWithResultGroupFieldsDefault() throws Exception { Tap sourceLower = new Hfs( new TextLine( new Fields( "offset", "line" ) ), "foo" ); Tap sourceUpper = new Hfs( new TextLine( new Fields( "offset", "line" ) ), "bar" ); Map sources = new HashMap(); sources.put( "lower", sourceLower ); sources.put( "upper", sourceUpper ); Function splitter = new RegexSplitter( new Fields( "num", "char" ), " " ); // using null pos so all fields are written Tap sink = new Hfs( new TextLine(), "/complex/cogroup/", SinkMode.REPLACE ); Pipe pipeLower = new Each( new Pipe( "lower" ), new Fields( "line" ), splitter ); Pipe pipeUpper = new Each( new Pipe( "upper" ), new Fields( "line" ), splitter ); Pipe splice = new CoGroup( pipeLower, new Fields( "num" ), pipeUpper, new Fields( "num" ), new Fields( "num1", "lhs", "num2", "rhs" ) ); splice = new Every( splice, new First( new Fields( "value" ) ), new Fields( "num1", "value" ) ); Flow countFlow = getPlatform().getFlowConnector().connect( sources, sink, splice ); }
@RunWith(PowerMockRunner.class) @PrepareForTest(First.class) public class StackOverflowTest { @Test public void testFirst() throws Exception { Second secondMock = EasyMock.createMock(Second.class); PowerMock.expectNew(Second.class).andReturn(secondMock); expect(secondMock.doSecond()).andReturn("Mocked!!!"); PowerMock.replay(secondMock, Second.class); String actual = new First().doSecond(); PowerMock.verify(secondMock, Second.class); assertThat(actual, equalTo("Mocked!!!")); } }
public void testFirst(){ Second sec = mock(Second.class); when(sec.doSecond()).thenReturn("Stubbed Second"); First first = new First(); Field privateField = PrivateObject.class. getDeclaredField("second"); privateField.setAccessible(true); privateField.set(first, sec); assertEquals("Stubbed Second", first.doSecond()); }
Tap source = getPlatform().getTextFile( new Fields( "offset", "line" ), inputFileLower ); Tap sink = getPlatform().getTextFile( new Fields( "line" ), getOutputPath( "sink" ), SinkMode.REPLACE ); Function splitter = new RegexSplitter( new Fields( "num", "char" ), " " ); pipeFirst = new Each( pipeFirst, new Fields( "line" ), splitter ); pipeFirst = new GroupBy( pipeFirst, new Fields( "num" ) ); pipeFirst = new Every( pipeFirst, new Fields( "char" ), new First( new Fields( "firstFirst" ) ), Fields.ALL ); pipeSecond = new Each( pipeSecond, new Identity() ); pipeSecond = new GroupBy( pipeSecond, new Fields( "num" ) ); pipeSecond = new Every( pipeSecond, new Fields( "firstFirst" ), new First( new Fields( "secondFirst" ) ), Fields.ALL ); Pipe splice = new HashJoin( pipeFirst, new Fields( "num" ), pipeSecond, new Fields( "num" ), Fields.size( 4 ) );
@Test public void testCoGroupWithResultGroupFieldsDefault() throws Exception { Tap sourceLower = new Hfs( new TextLine( new Fields( "offset", "line" ) ), "foo" ); Tap sourceUpper = new Hfs( new TextLine( new Fields( "offset", "line" ) ), "bar" ); Map sources = new HashMap(); sources.put( "lower", sourceLower ); sources.put( "upper", sourceUpper ); Function splitter = new RegexSplitter( new Fields( "num", "char" ), " " ); // using null pos so all fields are written Tap sink = new Hfs( new TextLine(), "/complex/cogroup/", SinkMode.REPLACE ); Pipe pipeLower = new Each( new Pipe( "lower" ), new Fields( "line" ), splitter ); Pipe pipeUpper = new Each( new Pipe( "upper" ), new Fields( "line" ), splitter ); Pipe splice = new CoGroup( pipeLower, new Fields( "num" ), pipeUpper, new Fields( "num" ), new Fields( "num1", "lhs", "num2", "rhs" ) ); splice = new Every( splice, new First( new Fields( "value" ) ), new Fields( "num1", "value" ) ); Flow countFlow = getPlatform().getFlowConnector().connect( sources, sink, splice ); }