All Downloads are FREE. Search and download functionalities are using the official Maven repository.

info.novatec.testit.webtester.events.pagefragments.NumberSetEvent Maven / Gradle / Ivy

package info.novatec.testit.webtester.events.pagefragments;

import java.util.Optional;

import org.apache.commons.lang.StringUtils;
import org.openqa.selenium.WebElement;

import info.novatec.testit.webtester.events.Event;
import info.novatec.testit.webtester.events.EventListener;
import info.novatec.testit.webtester.events.EventSystem;
import info.novatec.testit.webtester.events.PageFragmentEventBuilder;
import info.novatec.testit.webtester.pagefragments.NumberField;
import info.novatec.testit.webtester.pagefragments.PageFragment;


/**
 * This {@link Event event} occurs whenever a number field's value is set.
 * 

* It contains the before and after values as properties. * * @see Event * @see EventListener * @see EventSystem * @see NumberField * @since 2.0 */ public class NumberSetEvent extends AbstractPageFragmentEvent { private final Long before; private final Long after; public NumberSetEvent(PageFragment fragment, Long before, Long after) { super(fragment); this.before = before; this.after = after; } public Optional getBefore() { return Optional.ofNullable(before); } public Optional getAfter() { return Optional.ofNullable(after); } @Override public String describe() { return "number of '" + getPageFragmentName() + "' was set to '" + after + "' (was '" + before + "')"; } public static class Builder extends AbstractPageFragmentEventBuilder { private Long before; private Long after; @Override public boolean needsBeforeData() { return true; } @Override public PageFragmentEventBuilder setBeforeData(WebElement webElement) { this.before = getNumberValue(webElement); return this; } @Override public boolean needsAfterData() { return true; } @Override public PageFragmentEventBuilder setAfterData(WebElement webElement) { this.after = getNumberValue(webElement); return this; } private Long getNumberValue(WebElement webElement) { String value = webElement.getAttribute("value"); if (!StringUtils.isBlank(value)) { return Long.valueOf(value); } return null; } @Override protected NumberSetEvent buildWith(PageFragment fragment) { return new NumberSetEvent(fragment, before, after); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy