En muchos test generalmente necesitamos componentes como selectOneMenu, UnitView, ofrece mètodos para generar selct de manera muy sencilla.
Utilizamos panelAddSelectOneMenu para agrerar la lista de objetos de tipo SelectOneMenu , que utilizan dos parametros
la etiqueta para el componente y un ArrayList de tipo Item.
Cargamos un List de Items y lo pasamos como parametros al componente SelectOneMenu(label, List<Item>);
List<Color> colorList = colorRepository.findAll();
List<Item> itemList = new ArrayList<>();
colorList.stream().map((c) -> new Item(c.getIdcolor(), c.getIdcolor(), c.getIdcolor())).forEachOrdered((item) -> {
itemList.add(item);
});
unitView.panelAddSelectOneMenu(
Arrays.asList(new SelectOneMenu("color", itemList)));
Se pueden pasar multiples SelecteOneMenu al componente. Por ejemplo podriamos cargar un List<Item> de la clase bodega
List<Bodega> bodegaList = bodegaRepository.findAll();
List<Item> itemBodegaList = new ArrayList<>();
bodegaList.stream().map((c) -> new Item(c.getIdbodega())).forEachOrdered((item) -> {
itemBodegaList.add(item);
});
unitTest.panelAddSelectOneMenu(
Arrays.asList(new SelectOneMenu("color", itemList)
new SelectOneMenu("bodega", itemBodegaList)
));
@Test
public String panelSelectOneMenu() {
try {
List<Color> colorList = colorRepository.findAll();
Boolean found = unitTest.assertFalse("panelSelectOneMenu()", colorList.isEmpty());
if (found) {
/*
Dibuja la interfaz
*/
unitTest.form();
unitTest.formTitle("panelSelectOneMenu()");
unitTest.panel();
//-----------------------------
List<Item> itemList = new ArrayList<>();
colorList.stream().map((c) -> new Item(c.getIdcolor(), c.getIdcolor(), c.getIdcolor())).forEachOrdered((item) -> {
itemList.add(item);
});
unitTest.panelAddSelectOneMenu(
Arrays.asList(new SelectOneMenu("color", itemList)));
unitTest.panelClose();
unitTest.formClose();
} else {
unitTest.errorMessage("No tiene registros");
}
} catch (Exception e) {
System.out.println(nameOfMethod()+" " + e.getLocalizedMessage());
}
return "";
}