/******************************************************************************* * Copyright (c) 2012 OpenLegacy Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * OpenLegacy Inc. - initial API and implementation *******************************************************************************/ package org.openlegacy.terminal; import apps.inventory.screens.InventoryManagement; import apps.inventory.screens.ItemDetails1; import apps.inventory.screens.MainMenu; import apps.inventory.screens.SignOn; import org.junit.Assert; import org.openlegacy.AbstractTest; import org.openlegacy.Snapshot; import org.openlegacy.exceptions.SessionEndedException; import org.openlegacy.modules.globals.Globals; import org.openlegacy.modules.trail.SessionTrail; import org.openlegacy.modules.trail.Trail; import org.openlegacy.modules.trail.TrailWriter; import org.openlegacy.terminal.actions.TerminalActions; import org.openlegacy.utils.StringUtil; import java.io.ByteArrayOutputStream; import java.io.IOException; import javax.inject.Inject; public class AbstractAS400TerminalSessionSystemTest extends AbstractTest { @Inject private TrailWriter trailWriter; protected void testAS400InventorySystem() throws IOException { TerminalSession terminalSession = newTerminalSession(); SignOn signOn = terminalSession.getEntity(SignOn.class); Assert.assertNotNull(signOn); Assert.assertNotNull(signOn.getTerminalSnapshot()); Assert.assertNotNull(signOn.getUserField()); Assert.assertFalse(signOn.getUserField().isPassword()); Assert.assertEquals("S44R5550", terminalSession.getModule(Globals.class).getGlobal("system")); Assert.assertNotNull(signOn.getPasswordField()); Assert.assertTrue(signOn.getPasswordField().isPassword()); Assert.assertEquals("COPYRIGHT IBM CORP", signOn.getMessage()); signOn.setUser("user"); signOn.setPassword("pwd"); signOn.setFocusField("programProcedure"); // tests doAction with expected class type MainMenu mainMenu = terminalSession.doAction(TerminalActions.ENTER(), signOn, MainMenu.class); Assert.assertNotNull(mainMenu); Assert.assertTrue(101 == mainMenu.getCompany()); SessionTrail<? extends Snapshot> trail = terminalSession.getModule(Trail.class).getSessionTrail(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); trailWriter.write(trail, baos); System.out.println(StringUtil.toString(baos)); InventoryManagement inventoryManagement = terminalSession.getEntity(InventoryManagement.class); Assert.assertNotNull(inventoryManagement); ItemDetails1 itemDetails1 = terminalSession.getEntity(ItemDetails1.class); Assert.assertNotNull(itemDetails1); Assert.assertEquals(2000, itemDetails1.getItemNumber().intValue()); Assert.assertEquals("2000", itemDetails1.getItemDetails2().getItemNumber()); // tests @ScreenPart & related screen entity Assert.assertEquals("17/01/2005", itemDetails1.getItemDetails2().getAuditDetails().getCreatedDate()); Assert.assertNotNull(itemDetails1.getItemDetails2().getAuditDetails().getCreatedDateField()); Assert.assertEquals("STUDENT2", itemDetails1.getItemDetails2().getAuditDetails().getCreatedBy()); // make sure no extra fetch is made Assert.assertEquals("2000", itemDetails1.getItemDetails2().getItemNumber()); itemDetails1.getItemDetails2().getStockInfo().setListPrice("10"); itemDetails1.getItemDetails2().getStockInfo().setStandardUnitCost("1"); try { terminalSession.doAction(TerminalActions.ENTER(), itemDetails1.getItemDetails2()); } catch (SessionEndedException e) { // ok } } }