Package com.google.devtools.moe.client.tools

Source Code of com.google.devtools.moe.client.tools.CodebaseDifferenceTest

// Copyright 2011 The MOE Authors All Rights Reserved.

package com.google.devtools.moe.client.tools;

import static org.easymock.EasyMock.expect;

import com.google.common.collect.ImmutableSet;
import com.google.devtools.moe.client.codebase.Codebase;
import com.google.devtools.moe.client.tools.FileDifference.Comparison;

import junit.framework.TestCase;

import org.easymock.EasyMock;
import org.easymock.IMocksControl;

import java.io.File;

/**
* Tests CodebaseDifference by actually invoking diff.
* Tests FileDifference in the process.
* @author dbentley@google.com (Daniel Bentley)
*/
public class CodebaseDifferenceTest extends TestCase {

  public void testSame() throws Exception {
    IMocksControl control = EasyMock.createControl();
    Codebase c1 = control.createMock(Codebase.class);
    Codebase c2 = control.createMock(Codebase.class);
    File f1 = new File("/1/foo");
    File f2 = new File("/2/foo");
    FileDifference.FileDiffer differ = control.createMock(FileDifference.FileDiffer.class);

    expect(c1.getRelativeFilenames()).andReturn(ImmutableSet.of("foo"));
    expect(c2.getRelativeFilenames()).andReturn(ImmutableSet.of("foo"));
    expect(c1.getFile("foo")).andReturn(f1);
    expect(c2.getFile("foo")).andReturn(f2);
    expect(differ.diffFiles("foo", f1, f2)).andReturn(
        new FileDifference("foo", f1, f2, Comparison.SAME, Comparison.SAME, null));

    control.replay();
    CodebaseDifference d = CodebaseDifference.diffCodebases(c1, c2, differ);
    control.verify();

    assertEquals(false, d.areDifferent());
  }

  public void testDifferent() throws Exception {
    IMocksControl control = EasyMock.createControl();
    Codebase c1 = control.createMock(Codebase.class);
    Codebase c2 = control.createMock(Codebase.class);
    File f1 = new File("/1/foo");
    File f2 = new File("/2/foo");
    FileDifference.FileDiffer differ = control.createMock(FileDifference.FileDiffer.class);

    expect(c1.getRelativeFilenames()).andReturn(ImmutableSet.of("foo"));
    expect(c2.getRelativeFilenames()).andReturn(ImmutableSet.of("foo"));
    expect(c1.getFile("foo")).andReturn(f1);
    expect(c2.getFile("foo")).andReturn(f2);
    expect(differ.diffFiles("foo", f1, f2)).andReturn(
        new FileDifference("foo", f1, f2, Comparison.ONLY1, Comparison.SAME, null));

    control.replay();
    CodebaseDifference d = CodebaseDifference.diffCodebases(c1, c2, differ);
    control.verify();

    assertEquals(true, d.areDifferent());
  }

}
TOP

Related Classes of com.google.devtools.moe.client.tools.CodebaseDifferenceTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.