Skip to content

Commit

Permalink
Refactored SpecBuilderRightOf and added tests for it
Browse files Browse the repository at this point in the history
  • Loading branch information
ishubin committed Jul 1, 2017
1 parent f34579f commit 12f31fb
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 9 deletions.
Expand Up @@ -176,7 +176,7 @@ public SuggestionTestResult suggestSpecsRayCasting(PageItemNode parent, List<Pag
closestLeftEdge.itemNode.updateMinimalPaddingLeft(points[0].getLeft() - closestLeftEdge.p1.getLeft()); closestLeftEdge.itemNode.updateMinimalPaddingLeft(points[0].getLeft() - closestLeftEdge.p1.getLeft());
sbInside.addLeftEdge(); sbInside.addLeftEdge();
} else { } else {
compositeSpecBuilder.add(new SpecBuilderRightOf(pin.getPageItem().getName(), points, closestLeftEdge)); compositeSpecBuilder.add(new SpecBuilderRightOf(pin.getPageItem(), closestLeftEdge));
} }
} }


Expand Down
Expand Up @@ -16,6 +16,7 @@
package com.galenframework.generator.builders; package com.galenframework.generator.builders;


import com.galenframework.generator.AssertionEdge; import com.galenframework.generator.AssertionEdge;
import com.galenframework.generator.PageItem;
import com.galenframework.generator.SpecAssertion; import com.galenframework.generator.SpecAssertion;
import com.galenframework.generator.SpecStatement; import com.galenframework.generator.SpecStatement;
import com.galenframework.generator.filters.SpecFilter; import com.galenframework.generator.filters.SpecFilter;
Expand All @@ -29,28 +30,26 @@


public class SpecBuilderRightOf extends AbstractSpecBuilder { public class SpecBuilderRightOf extends AbstractSpecBuilder {
public static final String S_RIGHT_OF = "s_right_of"; public static final String S_RIGHT_OF = "s_right_of";
private String itemName;
private final Point[] points;
private final Edge leftEdge; private final Edge leftEdge;
private final PageItem pageItem;


public SpecBuilderRightOf(String itemName, Point[] points, Edge leftEdge) { public SpecBuilderRightOf(PageItem pageItem, Edge leftEdge) {
this.itemName = itemName; this.pageItem = pageItem;
this.points = points;
this.leftEdge = leftEdge; this.leftEdge = leftEdge;
} }


@Override @Override
public List<SpecStatement> buildSpecs(List<SpecFilter> excludedFilters, SpecGeneratorOptions options) { public List<SpecStatement> buildSpecs(List<SpecFilter> excludedFilters, SpecGeneratorOptions options) {
StringBuilder s = new StringBuilder("right-of "); StringBuilder s = new StringBuilder("right-of ");
s.append(leftEdge.itemNode.getPageItem().getName()); s.append(leftEdge.itemNode.getPageItem().getName());
int distance = points[0].getLeft() - leftEdge.p1.getLeft(); int distance = pageItem.getArea().getLeft() - leftEdge.p1.getLeft();
if (distance <= options.getMinimalStickyHorizontalDistance()) { if (distance <= options.getMinimalStickyHorizontalDistance()) {
s.append(' ').append(distance).append("px"); s.append(' ').append(distance).append("px");
} }


extendSpecFilters(excludedFilters, S_LEFT_OF); extendSpecFilters(excludedFilters, S_LEFT_OF);
return singletonList(new SpecStatement(s.toString(), singletonList(new SpecAssertion( return singletonList(new SpecStatement(s.toString(), singletonList(new SpecAssertion(
AssertionEdge.left(itemName), AssertionEdge.right(leftEdge) AssertionEdge.left(pageItem.getName()), AssertionEdge.right(leftEdge)
)))); ))));
} }


Expand All @@ -61,6 +60,6 @@ public String getName() {


@Override @Override
public String[] getArgs() { public String[] getArgs() {
return new String[]{itemName, leftEdge.itemNode.getPageItem().getName()}; return new String[]{pageItem.getName(), leftEdge.itemNode.getPageItem().getName()};
} }
} }
@@ -0,0 +1,37 @@
package com.galenframework.tests.generator.builders;

import com.galenframework.generator.*;
import com.galenframework.generator.builders.SpecBuilderRightOf;
import com.galenframework.generator.builders.SpecGeneratorOptions;
import com.galenframework.generator.raycast.EdgesContainer;
import com.galenframework.page.Point;
import com.galenframework.page.Rect;
import org.testng.annotations.Test;

import java.util.LinkedList;
import java.util.List;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;

public class SpecBuilderRightofTest {

@Test
public void should_generate_spec_rightof() {
SpecBuilderRightOf specBuilderRightOf = new SpecBuilderRightOf(
new PageItem("icon", new Rect(100, 10, 50, 50)),
new EdgesContainer.Edge(new PageItemNode(new PageItem("caption")), new Point(70, 10), new Point(70, 50))
);

List<SpecStatement> specStatements = specBuilderRightOf.buildSpecs(new LinkedList<>(), new SpecGeneratorOptions());

assertThat(specStatements.size(), is(1));
SpecStatement statement = specStatements.get(0);
assertThat(statement.getStatement(), is("right-of caption 30px"));

assertThat(statement.getAssertions().size(), is(1));
assertThat(statement.getAssertions().get(0), is(new SpecAssertion(
new AssertionEdge("icon", AssertionEdge.EdgeType.left),
new AssertionEdge("caption", AssertionEdge.EdgeType.right))));
}
}

0 comments on commit 12f31fb

Please sign in to comment.