use of com.yandex.money.api.model.showcase.components.uicontrols.Text in project yandex-money-sdk-java by yandex-money.
the class ShowcaseParserTest method checkForm.
private void checkForm(Group form) {
assertNotNull(form);
assertEquals(form.layout, Group.Layout.VERTICAL);
List<Component> components = form.items;
assertEquals(components.size(), 13);
Component component = components.get(0);
assertTrue(component instanceof Text);
Text text = (Text) component;
assertEquals(text.valueAutoFill, Parameter.AutoFill.CURRENT_USER_ACCOUNT);
checkComponentFields(text, "name1", "required");
assertEquals(text.minLength, Integer.valueOf(2));
assertEquals(text.maxLength, Integer.valueOf(10));
assertEquals(text.pattern, "\\D*?");
component = components.get(1);
assertTrue(component instanceof Number);
Number number = (Number) component;
checkComponentFields(number, "name2", "10.00");
checkNumberField(number);
component = components.get(2);
assertTrue(component instanceof Amount);
Amount amount = (Amount) component;
checkComponentFields(amount, "name3", "10.00");
checkNumberField(amount);
assertEquals(amount.currency, Currency.RUB);
checkFee(amount.fee);
component = components.get(3);
assertTrue(component instanceof Email);
checkComponentFields(component, "name4", "vyasevich@yamoney.ru");
component = components.get(4);
assertTrue(component instanceof Tel);
checkComponentFields(component, "name5", "79876543210");
component = components.get(5);
assertTrue(component instanceof Checkbox);
Checkbox checkbox = (Checkbox) component;
checkComponentFields(component, "name6", "true");
assertTrue(checkbox.checked);
component = components.get(6);
assertTrue(component instanceof Date);
Date date = (Date) component;
checkComponentFields(date, "name7", "2005-01-01");
checkDate(date);
component = components.get(7);
assertTrue(component instanceof Month);
Month month = (Month) component;
checkComponentFields(month, "name8", "2005-01");
checkDate(month);
component = components.get(8);
assertTrue(component instanceof Select);
Select select = (Select) component;
checkComponentFields(select, "name9", "value2");
assertEquals(select.style, Select.Style.RADIO_GROUP);
checkOptions(select.options);
component = components.get(9);
assertTrue(component instanceof TextArea);
TextArea textArea = (TextArea) component;
checkComponentFields(textArea, "name10", "value");
assertEquals(textArea.minLength, Integer.valueOf(2));
assertEquals(textArea.maxLength, Integer.valueOf(10));
component = components.get(10);
assertTrue(component instanceof Submit);
Submit submit = (Submit) component;
assertEquals(submit.hint, "hint");
assertEquals(submit.label, "label");
assertEquals(submit.alert, "alert");
assertTrue(submit.required);
assertFalse(submit.readonly);
component = components.get(11);
assertTrue(component instanceof Group);
Group group = (Group) component;
assertEquals(group.label, "label");
assertEquals(group.layout, Group.Layout.HORIZONTAL);
assertNotNull(group.items);
assertEquals(group.items.size(), 2);
component = components.get(12);
assertTrue(component instanceof Paragraph);
Paragraph paragraph = (Paragraph) component;
assertEquals(paragraph.label, "label");
List<TextBlock> items = paragraph.items;
assertNotNull(items);
assertEquals(items.size(), 3);
TextBlock block = items.get(0);
assertEquals(block.text, "Text with ");
block = items.get(1);
assertEquals(block.text, "link");
assertTrue(block instanceof TextBlock.WithLink);
TextBlock.WithLink link = (TextBlock.WithLink) block;
assertEquals(link.link, "https://money.yandex.ru");
block = items.get(2);
assertEquals(block.text, ".");
}
use of com.yandex.money.api.model.showcase.components.uicontrols.Text in project yandex-money-sdk-java by yandex-money.
the class ShowcaseParserTest method checkOptions.
private void checkOptions(List<Select.Option> options) {
assertEquals(options.size(), 3);
Select.Option option = options.get(0);
assertEquals(option.label, "label1");
assertEquals(option.value, "value1");
assertNull(option.group);
option = options.get(1);
assertEquals(option.label, "label2");
assertEquals(option.value, "value2");
assertNull(option.group);
option = options.get(2);
assertEquals(option.label, "label3");
assertEquals(option.value, "value3");
Group group = option.group;
assertNotNull(group);
List<Component> items = group.items;
assertEquals(items.size(), 1);
Component component = items.get(0);
assertTrue(component instanceof Text);
ParameterControl control = (ParameterControl) component;
assertEquals(control.name, "name14");
assertEquals(control.getValue(), "readonly");
assertEquals(control.hint, "hint");
assertEquals(control.label, "label");
assertEquals(control.alert, "alert");
assertFalse(control.required);
assertTrue(control.readonly);
}
use of com.yandex.money.api.model.showcase.components.uicontrols.Text in project yandex-money-sdk-java by yandex-money.
the class TextTest method testValidation.
@Test
public void testValidation() {
Text.Builder builder = new Text.Builder();
prepareParameter(builder);
Text text = builder.create();
Assert.assertTrue(text.isValid("some random string, no constraints"));
Assert.assertFalse(text.isValid("some random string\nno constraints"));
builder.setPattern("\\d*?").setMinLength(3).setMaxLength(5);
text = builder.create();
Assert.assertTrue(text.isValid("123"));
Assert.assertTrue(text.isValid("1234"));
Assert.assertTrue(text.isValid("12345"));
Assert.assertFalse(text.isValid("abc"));
Assert.assertFalse(text.isValid("12"));
Assert.assertFalse(text.isValid("123456"));
testEmptyValues(builder);
}
use of com.yandex.money.api.model.showcase.components.uicontrols.Text in project yandex-money-sdk-java by yandex-money.
the class ShowcaseProcessTest method testProceedSuccess.
/**
* Tests that complex showcase successfully proceeds two steps asynchronously.
*
* @throws Exception if something goes wrong
*/
@Test
public void testProceedSuccess() throws Exception {
final ShowcaseProcess showcaseProcess = initShowcaseProcess();
final ShowcaseContext showcaseContext = showcaseProcess.showcaseContext;
Showcase showcase = showcaseContext.getCurrentStep().showcase;
final Text inn = (Text) showcase.form.items.get(0);
inn.setValue(SAMPLE_INN);
showcaseProcess.proceed();
assertEquals(showcaseContext.getHistorySize(), 1);
showcase = showcaseContext.getCurrentStep().showcase;
((Text) showcase.form.items.get(0)).setValue("Содружество Авангард");
((Select) showcase.form.items.get(1)).setValue("40702810055240000859");
showcaseProcess.proceed();
assertEquals(showcaseContext.getHistorySize(), 2);
showcaseProcess.proceed();
assertEquals(showcaseContext.getHistorySize(), 3);
}
use of com.yandex.money.api.model.showcase.components.uicontrols.Text in project yandex-money-sdk-java by yandex-money.
the class ShowcaseProcessTest method testRepeat.
/**
* Tests that recovery from erroneous input works as expected.
*/
// @Test see INC-21192
public void testRepeat() throws Exception {
Showcase showcase = loadFromResource();
final ShowcaseContext.Step currentStep = new ShowcaseContext.Step(showcase, BILLS_SECOND_STEP_URL);
final ShowcaseContext showcaseContext = new ShowcaseContext(new Stack<ShowcaseContext.Step>(), DateTime.now(), currentStep, Collections.<String, String>emptyMap(), ShowcaseContext.State.UNKNOWN);
final ShowcaseProcess showcaseProcess = new ShowcaseProcess(getClient(), showcaseContext);
Text inn = (Text) showcase.form.items.get(0);
inn.setValue("erroneous input");
showcaseProcess.proceed();
assertEquals(showcaseContext.getHistorySize(), 0);
// repeat proceed with allowed inn
showcase = showcaseContext.getCurrentStep().showcase;
inn = (Text) showcase.form.items.get(0);
inn.setValue(SAMPLE_INN);
showcaseProcess.proceed();
assertEquals(showcaseContext.getHistorySize(), 1);
}
Aggregations