Package fitnesse.responders.versions

Source Code of fitnesse.responders.versions.VersionComparerResponderTest

package fitnesse.responders.versions;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.*;
import static util.RegexTestCase.assertHasRegexp;

import fitnesse.FitNesseContext;
import fitnesse.http.MockRequest;
import fitnesse.http.SimpleResponse;
import fitnesse.testutil.FitNesseUtil;
import fitnesse.wiki.*;
import fitnesse.wiki.fs.InMemoryPage;
import org.junit.Before;
import org.junit.Test;

public class VersionComparerResponderTest {
  private String firstVersion;
  private String secondVersion;
  private SimpleResponse response;
  private VersionComparerResponder responder;
  private MockRequest request;
  private FitNesseContext context;
  private VersionComparer mockedComparer;
 
  @Before
  public void setUp() throws Exception {
    WikiPage root = InMemoryPage.makeRoot("RooT");
    context = FitNesseUtil.makeTestContext(root);
    WikiPage page = WikiPageUtil.addPage(root, PathParser.parse("ComparedPage"), "original content");
    PageData data = page.getData();
    firstVersion = page.commit(data).getName();

    WikiPageProperties properties = data.getProperties();
    properties.set(PageData.PropertySUITES, "New Page tags");
    data.setContent("new stuff");
    secondVersion = page.commit(data).getName();
   
    data.setContent("even newer stuff");
    page.commit(data);

    request = new MockRequest();
    request.setResource("ComparedPage");
   
    mockedComparer = mock(VersionComparer.class);
    responder = new VersionComparerResponder(mockedComparer);
    responder.testing = true;
  }

  @Test
  public void shouldCompareTheTwoVersionsSpecified() throws Exception {
    request.addInput("Version_" + firstVersion, "");
    request.addInput("Version_" + secondVersion, "");
    when(mockedComparer.compare(firstVersion, "original content", secondVersion, "new stuff")).thenReturn(true);
    response = (SimpleResponse) responder.makeResponse(context, request);
    assertEquals(200, response.getStatus());
    verify(mockedComparer).compare(firstVersion, "original content", secondVersion, "new stuff");
  }

  @Test
  public void shouldCompareTheOneVersionSpecifiedToTheCurrentVersion() throws Exception {
    request.addInput("Version_" + secondVersion, "");
    when(mockedComparer.compare(secondVersion, "new stuff", "latest", "even newer stuff")).thenReturn(true);
    response = (SimpleResponse) responder.makeResponse(context, request);
    assertEquals(200, response.getStatus());
    verify(mockedComparer).compare(secondVersion, "new stuff", "latest", "even newer stuff");
  }
 
  @Test
  public void shouldReturnErrorResponseIfNoVersionsSpecified() throws Exception {
    response = (SimpleResponse) responder.makeResponse(context, request);
    assertEquals(400, response.getStatus());
    assertHasRegexp(
        "Compare Failed because no Input Files were given. Select one or two please.",
        response.getContent());

  }
}
TOP

Related Classes of fitnesse.responders.versions.VersionComparerResponderTest

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.