У меня есть 2 класса компонентов
OrderDetailsSite1.java
OrderDetailsSite2.java
У меня есть один класс бинов, в котором я храню детали корзины покупок
- Наименование товара
- Количество
- Цена единицы
- Итого
Теперь мне нужно создать один общий метод, в котором я должен передать объект класса Component и сравнить значения с данными класса бина.
Пробный код:
public void validateProductDetails(Object obj) {
OrderDetailBean bean = (OrderDetailBean) ConfigurationManager.getBundle().getObject("order_details");
OrderDetailsSite1 comp=null;
if (obj instanceof OrderDetailsSite1) {
comp = (OrderDetailsSite1) obj;
}
for (int i = 0; i < bean.getProductName().size(); i++) {
assertResult( comp.getProductList().get(i).getProductName().getText(), bean.getProductName().get(i));
assertResult( comp.getProductList().get(i).getProductQuantity().getText(), bean.getProductQuantity().get(i));
assertResult( comp.getProductList().get(i).getProductUnitPrice().getText(), bean.getProductUnitprice().get(i));
assertResult(comp.getProductList().get(i).getProductSubtotal().getText(), bean.getProductSubtotal().get(i));
}
}
Код, который я сделал для компонента 1, но для компонента 2 мне нужно повторить тот же код? или есть ли возможность сделать то же самое эффективным способом
EDITED
Я работаю с селеном, и я создал одну переменную и имя метода в обоих классах, но локаторы для обоих отличаются. Можно ли сделать то же самое, используя концепцию суперкласса?
OrderDetailsSite1.java
@FindBy(locator = "magento.ordered.item.name")
private QAFWebElement productName;
@FindBy(locator = "magento.ordered.item.quantity")
private QAFWebElement productQuantity;
@FindBy(locator = "magento.ordered.item.price")
private QAFWebElement productUnitPrice;
@FindBy(locator = "magento.ordered.item.subtotal")
private QAFWebElement productSubtotal;
OrderDetailsSite2.java
@FindBy(locator = "order.detail.product.name")
private QAFWebElement productName;
@FindBy(locator = "order.detail.product.uprice")
private QAFWebElement productUnitPrice;
@FindBy(locator = "order.detail.product.quantity")
private QAFWebElement productQuantity;
@FindBy(locator = "order.detail.product.subtotal")
private QAFWebElement productSubtotal;
Имя метода в обоих классах одинаковое.