Skip to content

Commit da6b1be

Browse files
committed
put error protocol into context
1 parent 55968ea commit da6b1be

File tree

7 files changed

+205
-171
lines changed

7 files changed

+205
-171
lines changed

src/main/java/net/itarray/automotion/internal/AbstractValidator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public AbstractValidator dontDrawMap() {
3434

3535

3636
protected void addError(String message) {
37-
getBase().addError(message);
37+
getBase().getContext().add(message);
3838
}
3939

4040
@Override

src/main/java/net/itarray/automotion/internal/ResponsiveUIChunkValidatorBase.java

Lines changed: 54 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import net.itarray.automotion.internal.geometry.Interval;
55
import net.itarray.automotion.internal.geometry.Scalar;
66
import net.itarray.automotion.internal.geometry.Vector;
7+
import net.itarray.automotion.internal.properties.Context;
78
import net.itarray.automotion.validation.ChunkUIElementValidator;
89
import net.itarray.automotion.validation.UISnapshot;
910
import net.itarray.automotion.validation.Units;
@@ -29,7 +30,7 @@ public ResponsiveUIChunkValidatorBase(UISnapshot snapshot, List<WebElement> webE
2930
super(snapshot);
3031
if (!allowEmpty && webElements.isEmpty()) {
3132
String message = "Set root web element";
32-
addError(message);
33+
getContext().add(message);
3334
} else {
3435
if (!getDriver().isAppiumContext()) {
3536
try {
@@ -113,7 +114,7 @@ public void validateAlignedAsGridCells(List<UIElement> rootElements) {
113114
Interval yInterval = element.getYInterval();
114115
Interval yCell = rows.get(rows.indexOf(yInterval));
115116
if (!(xInterval.equals(xCell) && yInterval.equals(yCell))) {
116-
errors.add(String.format("banane"));
117+
getContext().add(String.format("banane"));
117118
}
118119
}
119120
}
@@ -275,13 +276,14 @@ public ResponsiveUIChunkValidatorBase areInsideOf(WebElement containerElement, S
275276
}
276277

277278
private void validateElementsAreNotOverlapped(List<UIElement> elements) {
279+
Context context = getContext();
278280
for (int firstIndex = 0; firstIndex < elements.size(); firstIndex++) {
279281
UIElement first = elements.get(firstIndex);
280282
for (int secondIndex = firstIndex+1; secondIndex < elements.size(); secondIndex++) {
281283
UIElement second = elements.get(secondIndex);
282-
if (first.overlaps(second, getContext())) {
283-
errors.add("Elements are overlapped");
284-
errors.draw(first);
284+
if (first.overlaps(second, context)) {
285+
context.add("Elements are overlapped");
286+
context.draw(first);
285287
break;
286288
}
287289
}
@@ -299,7 +301,7 @@ private void validateGridAlignment(List<UIElement> elements, int columns, int ro
299301
int mapSize = map.size();
300302
if (rows > 0) {
301303
if (mapSize != rows) {
302-
addError(String.format("Elements in a grid are not aligned properly. Looks like grid has wrong amount of rows. Expected is %d. Actual is %d", rows, mapSize));
304+
getContext().add(String.format("Elements in a grid are not aligned properly. Looks like grid has wrong amount of rows. Expected is %d. Actual is %d", rows, mapSize));
303305
}
304306
}
305307

@@ -312,7 +314,7 @@ private void validateGridAlignment(List<UIElement> elements, int columns, int ro
312314
if (actualInARow != columns) {
313315
errorLastLine++;
314316
if (errorLastLine > 1 || actualInARow > columns) {
315-
addError(String.format("Elements in a grid are not aligned properly in row #%d. Expected %d elements in a row. Actually it's %d", rowCount, columns, actualInARow));
317+
getContext().add(String.format("Elements in a grid are not aligned properly in row #%d. Expected %d elements in a row. Actually it's %d", rowCount, columns, actualInARow));
316318
}
317319
}
318320
rowCount++;
@@ -323,16 +325,16 @@ private void validateGridAlignment(List<UIElement> elements, int columns, int ro
323325

324326
private void validateRightAlignedWithChunk(List<UIElement> elements) {
325327
if (!elements.isEmpty()) {
326-
int oldErrorsSize = errors.getMessages().size();
328+
int oldErrorsSize = getContext().errorCount();
327329
int pickedIndex = 0;
328330
UIElement element = elements.get(pickedIndex);
329331
for (int i = 0; i < elements.size(); i++) {
330332
if (i != pickedIndex) {
331333
UIElement elementToCompare = elements.get(i);
332-
element.validateRightAlignedWith(elementToCompare, getContext(), errors);
334+
element.validateRightAlignedWith(elementToCompare, getContext());
333335
}
334336
}
335-
if (errors.getMessages().size() != oldErrorsSize) {
337+
if (getContext().errorCount() != oldErrorsSize) {
336338
Vector onLine = elements.get(pickedIndex).getCorner();
337339
drawVerticalLine(onLine);
338340
}
@@ -341,143 +343,149 @@ private void validateRightAlignedWithChunk(List<UIElement> elements) {
341343

342344
private void validateLeftAlignedWithChunk(List<UIElement> elements) {
343345
if (!elements.isEmpty()) {
344-
int oldErrorsSize = errors.getMessages().size();
346+
int oldErrorsSize = getContext().errorCount();
345347
int pickedIndex = 0;
346348
UIElement element = elements.get(pickedIndex);
347349
for (int i = 0; i < elements.size(); i++) {
348350
UIElement elementToCompare = elements.get(i);
349-
element.validateLeftAlignedWith(elementToCompare, getContext(), errors);
351+
element.validateLeftAlignedWith(elementToCompare, getContext());
350352
}
351-
if (errors.getMessages().size() != oldErrorsSize) {
353+
if (getContext().errorCount() != oldErrorsSize) {
352354
drawVerticalLine(elements.get(pickedIndex).getOrigin());
353355
}
354356
}
355357
}
356358

357359
private void validateTopAlignedWithChunk(List<UIElement> elements) {
358360
if (!elements.isEmpty()) {
359-
int oldErrorsSize = errors.getMessages().size();
361+
int oldErrorsSize = getContext().errorCount();
360362
int pickedIndex = 0;
361363
UIElement element = elements.get(pickedIndex);
362364
for (int i = 0; i < elements.size(); i++) {
363365
UIElement elementToCompare = elements.get(i);
364-
element.validateTopAlignedWith(elementToCompare, getContext(), errors);
366+
element.validateTopAlignedWith(elementToCompare, getContext());
365367
}
366-
if (errors.getMessages().size() != oldErrorsSize) {
368+
if (getContext().errorCount() != oldErrorsSize) {
367369
drawHorizontalLine(elements.get(pickedIndex).getOrigin());
368370
}
369371
}
370372
}
371373

372374
private void validateBottomAlignedWithChunk(List<UIElement> elements) {
373375
if (!elements.isEmpty()) {
374-
int oldErrorsSize = errors.getMessages().size();
376+
int oldErrorsSize = getContext().errorCount();
375377
int pickedIndex = 0;
376378
UIElement element = elements.get(pickedIndex);
377379
for (int i = 0; i < elements.size(); i++) {
378380
UIElement elementToCompare = elements.get(i);
379-
element.validateBottomAlignedWith(elementToCompare, getContext(), this.errors);
381+
element.validateBottomAlignedWith(elementToCompare, getContext());
380382
}
381-
if (errors.getMessages().size() != oldErrorsSize) {
383+
if (getContext().errorCount() != oldErrorsSize) {
382384
drawHorizontalLine(elements.get(pickedIndex).getCorner());
383385
}
384386
}
385387
}
386388

387389
private void validateSameWidth(List<UIElement> elements) {
390+
Context context = getContext();
388391
for (int i = 0; i < elements.size() - 1; i++) {
389392
UIElement element = elements.get(i);
390393
UIElement elementToCompare = elements.get(i + 1);
391-
if (!element.hasSameWidthAs(elementToCompare, getContext())) {
392-
errors.add(String.format("Element %s has different width than element %s.", element.getQuotedName(), elementToCompare.getQuotedName()));
393-
errors.draw(element);
394-
errors.draw(elementToCompare);
394+
if (!element.hasSameWidthAs(elementToCompare, context)) {
395+
context.add(String.format("Element %s has different width than element %s.", element.getQuotedName(), elementToCompare.getQuotedName()));
396+
context.draw(element);
397+
context.draw(elementToCompare);
395398
}
396399
}
397400
}
398401

399402
private void validateSameHeight(List<UIElement> elements) {
403+
Context context = getContext();
400404
for (int i = 0; i < elements.size() - 1; i++) {
401405
UIElement element = elements.get(i);
402406
UIElement elementToCompare = elements.get(i + 1);
403-
if (!element.hasSameHeightAs(elementToCompare, getContext())) {
404-
errors.add(String.format("Element %s has different height than element %s.", element.getQuotedName(), elementToCompare.getQuotedName()));
405-
errors.draw(element);
406-
errors.draw(elementToCompare);
407+
if (!element.hasSameHeightAs(elementToCompare, context)) {
408+
context.add(String.format("Element %s has different height than element %s.", element.getQuotedName(), elementToCompare.getQuotedName()));
409+
context.draw(element);
410+
context.draw(elementToCompare);
407411
}
408412
}
409413
}
410414

411415
private void validateSameSize(List<UIElement> elements) {
416+
Context context = getContext();
412417
for (int i = 0; i < elements.size() - 1; i++) {
413418
UIElement element = elements.get(i);
414419
UIElement elementToCompare = elements.get(i + 1);
415-
if (!element.hasSameSizeAs(elementToCompare, getContext())) {
416-
errors.add(String.format("Element %s has different size than element %s.", element.getQuotedName(), elementToCompare.getQuotedName()));
417-
errors.draw(element);
418-
errors.draw(elementToCompare);
420+
if (!element.hasSameSizeAs(elementToCompare, context)) {
421+
context.add(String.format("Element %s has different size than element %s.", element.getQuotedName(), elementToCompare.getQuotedName()));
422+
context.draw(element);
423+
context.draw(elementToCompare);
419424
}
420425

421426
}
422427
}
423428

424429
private void validateHaveDifferentSizes(List<UIElement> elements) {
430+
Context context = getContext();
425431
for (int firstIndex = 0; firstIndex < elements.size(); firstIndex++) {
426432
UIElement element = elements.get(firstIndex);
427433
for (int secondIndex = firstIndex+1; secondIndex < elements.size(); secondIndex++) {
428434
UIElement elementToCompare = elements.get(secondIndex);
429-
if (element.hasSameSizeAs(elementToCompare, getContext())) {
430-
errors.add(String.format("Element %s has same size than element %s.", element.getQuotedName(), elementToCompare.getQuotedName()));
431-
errors.draw(element);
432-
errors.draw(elementToCompare);
435+
if (element.hasSameSizeAs(elementToCompare, context)) {
436+
context.add(String.format("Element %s has same size than element %s.", element.getQuotedName(), elementToCompare.getQuotedName()));
437+
context.draw(element);
438+
context.draw(elementToCompare);
433439
}
434440
}
435441
}
436442
}
437443

438444
private void validateHaveDifferentWidths(List<UIElement> elements) {
445+
Context context = getContext();
439446
for (int firstIndex = 0; firstIndex < elements.size(); firstIndex++) {
440447
UIElement element = elements.get(firstIndex);
441448
for (int secondIndex = firstIndex+1; secondIndex < elements.size(); secondIndex++) {
442449
UIElement elementToCompare = elements.get(secondIndex);
443-
if (element.hasSameWidthAs(elementToCompare, getContext())) {
444-
errors.add(String.format("Element %s has same width than element %s.", element.getQuotedName(), elementToCompare.getQuotedName()));
445-
errors.draw(element);
446-
errors.draw(elementToCompare);
450+
if (element.hasSameWidthAs(elementToCompare, context)) {
451+
context.add(String.format("Element %s has same width than element %s.", element.getQuotedName(), elementToCompare.getQuotedName()));
452+
context.draw(element);
453+
context.draw(elementToCompare);
447454
}
448455
}
449456
}
450457
}
451458

452459
private void validateNotSameHeight(List<UIElement> elements) {
460+
Context context = getContext();
453461
for (int firstIndex = 0; firstIndex < elements.size(); firstIndex++) {
454462
UIElement element = elements.get(firstIndex);
455463
for (int secondIndex = firstIndex+1; secondIndex < elements.size(); secondIndex++) {
456464
UIElement elementToCompare = elements.get(secondIndex);
457-
if (element.hasSameHeightAs(elementToCompare, getContext())) {
458-
errors.add(String.format("Element %s has same height than element %s.", element.getQuotedName(), elementToCompare.getQuotedName()));
459-
errors.draw(element);
460-
errors.draw(elementToCompare);
465+
if (element.hasSameHeightAs(elementToCompare, context)) {
466+
context.add(String.format("Element %s has same height than element %s.", element.getQuotedName(), elementToCompare.getQuotedName()));
467+
context.draw(element);
468+
context.draw(elementToCompare);
461469
}
462470
}
463471
}
464472
}
465473

466474
private void validateCenteredOnPageVertically(List<UIElement> elements) {
467475
for (UIElement element : elements) {
468-
element.validateCenteredOnVertically(page, getContext(), errors);
476+
element.validateCenteredOnVertically(page, getContext());
469477
}
470478
}
471479

472480
private void validateCenteredOnPageHorizontally(List<UIElement> elements) {
473481
for (UIElement element : elements) {
474-
element.validateCenteredOnHorizontally(page, getContext(), errors);
482+
element.validateCenteredOnHorizontally(page, getContext());
475483
}
476484
}
477485

478486
private void validateInsideOfContainer(UIElement containerElement, List<UIElement> elements) {
479487
for (UIElement element : elements) {
480-
element.validateInsideOfContainer(containerElement, getContext(), errors);
488+
element.validateInsideOfContainer(containerElement, getContext());
481489
}
482490
}
483491

src/main/java/net/itarray/automotion/internal/ResponsiveUIValidatorBase.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
public abstract class ResponsiveUIValidatorBase {
2222

23-
protected final Errors errors;
23+
private final Errors errors;
2424
protected final UIElement page;
2525
private final long startTime;
2626
protected final UISnapshot snapshot;
@@ -97,10 +97,6 @@ public ResponsiveUIValidatorBase dontDrawMap() {
9797
return this;
9898
}
9999

100-
protected void addError(String message) {
101-
errors.add(message);
102-
}
103-
104100
public boolean validate() {
105101

106102
if (errors.hasMessages()) {
@@ -128,6 +124,21 @@ public boolean isPixels() {
128124

129125
@Override
130126
public Scalar getTolerance() { return tolerance; }
127+
128+
@Override
129+
public void add(String message) {
130+
errors.add(message);
131+
}
132+
133+
@Override
134+
public void draw(UIElement element) {
135+
errors.draw(element);
136+
}
137+
138+
@Override
139+
public int errorCount() {
140+
return errors.getMessages().size();
141+
}
131142
};
132143
}
133144

0 commit comments

Comments
 (0)