/* * Copyright (c) 2014-2015 Giving.com, trading as JustGiving or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located in the "license" file accompanying this file. * * This file 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. * * @author Richard Freeman * */ package com.justgiving.raven.kissmetrics.jsonenricher; import java.nio.file.Paths; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.NullWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mrunit.mapreduce.MapDriver; import org.apache.hadoop.mrunit.mapreduce.MapReduceDriver; import org.apache.hadoop.mrunit.mapreduce.ReduceDriver; import org.junit.Before; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; import com.justgiving.raven.kissmetrics.KissmetricsConstants; import com.justgiving.raven.kissmetrics.schema.KissmetricsJsonToSchemaMapper; import com.justgiving.raven.kissmetrics.schema.KissmetricsJsonToSchemaReducer; public abstract class KissmetricsJsonToEnrichedJsonTestBase { final Logger logger = Logger.getLogger(KissmetricsJsonToEnrichedJsonMapper.class); MapReduceDriver<LongWritable, Text, Text, Text, Text, NullWritable> mapReduceDriver; MapDriver<LongWritable, Text, Text, Text> mapDriver; ReduceDriver<Text, Text, Text, NullWritable> reduceDriver; @Before public void setUp() { KissmetricsJsonToEnrichedJsonMapper mapper = new KissmetricsJsonToEnrichedJsonMapper(); KissmetricsJsonToEnrichedJsonReducer reducer = new KissmetricsJsonToEnrichedJsonReducer(); mapDriver = new MapDriver<LongWritable, Text, Text, Text>(); mapDriver.setMapper(mapper); reduceDriver = new ReduceDriver<Text, Text, Text, NullWritable>(); reduceDriver.setReducer(reducer); mapReduceDriver = new MapReduceDriver<LongWritable, Text, Text, Text, Text, NullWritable>(); mapReduceDriver.setMapper(mapper); mapReduceDriver.setReducer(reducer); String logConfigPath = Paths.get(System.getProperty("user.dir"), "log4j.properties").toString(); //System.out.println("log config file used: " + logConfigPath); PropertyConfigurator.configure(logConfigPath); } protected long getCounter(KissmetricsConstants.TRACKING_COUNTER counter) { if(mapReduceDriver.getClass().isAssignableFrom(ReduceDriver.class)) return ((ReduceDriver)reduceDriver).getCounters().findCounter(counter).getValue(); else { return ((MapDriver)mapDriver).getCounters().findCounter(counter).getValue(); } } }