Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
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 org.apache.hadoop.mrunit.mapreduce;
 
 
 import java.util.List;
 
Harness that allows you to test a Mapper instance. You provide the input key and value that should be sent to the Mapper, and outputs you expect to be sent by the Mapper to the collector for those inputs. By calling runTest(), the harness will deliver the input to the Mapper and will check its outputs against the expected results. This is designed to handle a single (k, v) -> (k, v)* case from the Mapper, representing a single unit test. Multiple input (k, v) pairs should go in separate unit tests.
 
 public class MapDriver<K1, V1, K2, V2> extends MapDriverBase<K1, V1, K2, V2> {
 
   public static final Log LOG = LogFactory.getLog(MapDriver.class);
 
   private Mapper<K1, V1, K2, V2> myMapper;
   private Counters counters;
 
   public MapDriver(final Mapper<K1, V1, K2, V2> m) {
      = m;
      = new Counters();
   }
 
   public MapDriver() {
      = new Counters();
   }


  
Set the Mapper instance to use with this test driver

Parameters:
m the Mapper instance to use
 
   public void setMapper(Mapper<K1, V1, K2, V2> m) {
      = m;
   }

  
Sets the Mapper instance to use and returns self for fluent style
 
   public MapDriver<K1, V1, K2, V2> withMapper(Mapper<K1, V1, K2, V2> m) {
     setMapper(m);
     return this;
   }

  

Returns:
the Mapper object being used by this test
 
   public Mapper<K1, V1, K2, V2> getMapper() {
     return ;
   }

  

Returns:
the counters used in this test
 
   public Counters getCounters() {
     return ;
   }

  
Sets the counters object to use for this test.

Parameters:
ctrs The counters object to use.
 
   public void setCounters(final Counters ctrs) {
     this. = ctrs;
   }

  
Sets the counters to use and returns self for fluent style
 
   public MapDriver<K1, V1, K2, V2> withCounters(final Counters ctrs) {
     setCounters(ctrs);
     return this;
  }

  
Identical to setInputKey() but with fluent programming style

Returns:
this
  public MapDriver<K1, V1, K2, V2> withInputKey(K1 key) {
    setInputKey(key);
    return this;
  }

  
Identical to setInputValue() but with fluent programming style

Parameters:
val
Returns:
this
  public MapDriver<K1, V1, K2, V2> withInputValue(V1 val) {
    setInputValue(val);
    return this;
  }

  
Identical to setInput() but returns self for fluent programming style

Returns:
this
  public MapDriver<K1, V1, K2, V2> withInput(K1 key, V1 val) {
    setInput(keyval);
    return this;
  }

  
Identical to setInput() but returns self for fluent programming style

Parameters:
inputRecord
Returns:
this
  public MapDriver<K1, V1, K2, V2> withInput(Pair<K1, V1> inputRecord) {
    setInput(inputRecord);
    return this;
  }

  
Works like addOutput(), but returns self for fluent style

Parameters:
outputRecord
Returns:
this
  public MapDriver<K1, V1, K2, V2> withOutput(Pair<K2, V2> outputRecord) {
    addOutput(outputRecord);
    return this;
  }

  
Functions like addOutput() but returns self for fluent programming style

Returns:
this
  public MapDriver<K1, V1, K2, V2> withOutput(K2 key, V2 val) {
    addOutput(keyval);
    return this;
  }

  
Identical to setInputFromString, but with a fluent programming style

Parameters:
input A string of the form "key \t val". Trims any whitespace.
Returns:
this
  public MapDriver<K1, V1, K2, V2> withInputFromString(String input) {
    setInputFromString(input);
    return this;
  }

  
Identical to addOutputFromString, but with a fluent programming style

Parameters:
output A string of the form "key \t val". Trims any whitespace.
Returns:
this
  public MapDriver<K1, V1, K2, V2> withOutputFromString(String output) {
    addOutputFromString(output);
    return this;
  }
  public List<Pair<K2, V2>> run() throws IOException {
    List<Pair<K1, V1>> inputs = new ArrayList<Pair<K1, V1>>();
    inputs.add(new Pair<K1, V1>());
    try {
      MockMapContextWrapper<K1, V1, K2, V2> wrapper = new MockMapContextWrapper();
      MockMapContextWrapper<K1, V1, K2, V2>.MockMapContext context =
          wrapper.getMockContext(inputsgetCounters());
      .run(context);
      return context.getOutputs();
    } catch (InterruptedException ie) {
      throw new IOException(ie);
    }
  }
  public String toString() {
    return "MapDriver (0.20+) (" +  + ")";
  }
  
  

Parameters:
configuration The configuration object that will given to the mapper associated with the driver
Returns:
this object for fluent coding
  public MapDriver<K1, V1, K2, V2> withConfiguration(Configuration configuration) {
    setConfiguration(configuration);
	  return this;
  }
New to GrepCode? Check out our FAQ X