/******************************************************************************* * Copyright Technophobia Ltd 2012 * * This file is part of the Substeps Eclipse Plugin. * * The Substeps Eclipse Plugin is free software: you can redistribute it and/or modify * it under the terms of the Eclipse Public License v1.0. * * The Substeps Eclipse Plugin is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * Eclipse Public License for more details. * * You should have received a copy of the Eclipse Public License * along with the Substeps Eclipse Plugin. If not, see <http://www.eclipse.org/legal/epl-v10.html>. ******************************************************************************/ package com.technophobia.substeps.render; import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import com.technophobia.substeps.model.StepImplementation; import com.technophobia.substeps.render.fake.FakeStepImplementationRendererTarget; public class ParameterisedStepImplementationRendererTest { private StepImplementationToSuggestionRenderer stepRenderer; @Before public void intialise() { this.stepRenderer = new ParameterisedStepImplementationRenderer(); } @Test public void nonParameterisedStepImplementationsRenderCorrectly() throws Exception { final StepImplementation step = StepImplementation.parse("Given this is a non-parameterised step definition", FakeStepImplementationRendererTarget.class, FakeStepImplementationRendererTarget.class.getMethod("given")); assertTrue(stepRenderer.render(step).isMatch("Given this is a non-parameterised step definition")); } @Test public void singleParameterisedStepImplementationsRenderCorrectly() throws Exception { final StepImplementation step = StepImplementation.parse( "Given this is a single parameter step definition with \"([^\"]*)\"", FakeStepImplementationRendererTarget.class, FakeStepImplementationRendererTarget.class.getMethod("given", String.class)); assertTrue(stepRenderer.render(step).isMatch( "Given this is a single parameter step definition with \"A Value\"")); } @Test public void multiParameterisedStepImplementationsRenderCorrectly() throws Exception { final StepImplementation step = StepImplementation .parse("Given this is a multi parameter step definition with \"([^\"]*)\", \"([^\"]*)\" and \"([^\"]*)\"", FakeStepImplementationRendererTarget.class, FakeStepImplementationRendererTarget.class .getMethod("given", String.class, String.class, String.class)); assertTrue(stepRenderer.render(step).isMatch( "Given this is a multi parameter step definition with \"Value 1\", \"Value 2\" and \"Value 3\"")); } }