// Path: src/main/java/ru/colibri/ui/core/builders/ElementBuilders.java
// @Component
// public class ElementBuilders {
// 
//     public static ElementBuilder element() {
//         return new ElementBuilder();
//     }
// }
// 
// Path: src/main/java/ru/colibri/ui/core/fields/IElement.java
// public interface IElement {
//     String getName();
// 
//     String getContentDesc();
// 
//     String getId();
// 
//     String getText();
// 
//     String getXpath();
// 
//     String getNSPredicate();
// 
//     boolean isSpecific();
// }


import org.junit.Test;
import org.junit.runner.RunWith;
import org.openqa.selenium.By;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import ru.colibri.ui.core.builders.ElementBuilders;
import ru.colibri.ui.core.fields.IElement;
import static java.lang.String.format;
import static org.junit.Assert.assertEquals;
    }

    @Test
    public void shouldScrollToListItemElementWithId() {

        IElement listElement = ElementBuilders.element()
                .withId("list")
                .please();
        IElement itemElement = ElementBuilders.element()
                .withId("itemElement")
                .please();

        String actual = byFactory.scrollToUiAutomatorStringId(listElement.getId(), itemElement.getId());

        String expected = "new UiScrollable(new UiSelector()" +
                ".scrollable(true)" +
                ".resourceId(\"" + formatResourceId(listElement) + "\"))" +
                ".scrollIntoView(new UiSelector().resourceId(\"" + formatResourceId(itemElement) + "\"))";
        assertEquals("Результат работы AndroidByFactory по скроллу до элемента некорректен", expected, actual);
    }

    @Test
    public void testNested() {
        IElement parent = ElementBuilders.element()
                .withId("textFieldID")
                .please();
        IElement nested = ElementBuilders.element()
                .withXPath("//*[@someXPath='value']")
                .please();

// Path: src/main/java/ru/colibri/ui/core/builders/ElementBuilders.java
// @Component
// public class ElementBuilders {
// 
//     public static ElementBuilder element() {
//         return new ElementBuilder();
//     }
// }
// 
// Path: src/main/java/ru/colibri/ui/core/fields/IElement.java
// public interface IElement {
//     String getName();
// 
//     String getContentDesc();
// 
//     String getId();
// 
//     String getText();
// 
//     String getXpath();
// 
//     String getNSPredicate();
// 
//     boolean isSpecific();
// }


// Path: src/test/java/ru/colibri/ui/settings/android/AndroidByFactoryTests.java
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openqa.selenium.By;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import ru.colibri.ui.core.builders.ElementBuilders;
import ru.colibri.ui.core.fields.IElement;
import static java.lang.String.format;
import static org.junit.Assert.assertEquals;

    }

    @Test
    public void shouldScrollToListItemElementWithId() {

        IElement listElement = ElementBuilders.element()
                .withId("list")
                .please();
        IElement itemElement = ElementBuilders.element()
                .withId("itemElement")
                .please();

        String actual = byFactory.scrollToUiAutomatorStringId(listElement.getId(), itemElement.getId());

        String expected = "new UiScrollable(new UiSelector()" +
                ".scrollable(true)" +
                ".resourceId(\"" + formatResourceId(listElement) + "\"))" +
                ".scrollIntoView(new UiSelector().resourceId(\"" + formatResourceId(itemElement) + "\"))";
        assertEquals("Результат работы AndroidByFactory по скроллу до элемента некорректен", expected, actual);
    }

    @Test
    public void testNested() {
        IElement parent = ElementBuilders.element()
                .withId("textFieldID")
                .please();
        IElement nested = ElementBuilders.element()
                .withXPath("//*[@someXPath='value']")
                .please();

        By byElementFromFactory = byFactory.getNestedElement(parent, nested);