package com.fitbank.menujson;

import junit.framework.TestCase;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;

public class TestMenuJSON extends TestCase {

    public void testMenu() {
        MenuJSON menuJSON = new MenuJSON("Menu");

        menuJSON.getItems().add(new MenuCompania("Compañia", "00"));
        menuJSON.getItems().add(new MenuSubsistema("Subsistema", "01"));
        menuJSON.getItems().add(
                new ItemTransaccion("Transaccion", "02", "0002"));

        JSONObject json = (JSONObject) JSONSerializer.toJSON(menuJSON
                .toString());

        assertEquals("Menu", json.getString("nombre"));

        JSONArray items = (JSONArray) json.get("items");
        JSONObject compania = (JSONObject) items.get(0);
        assertEquals("Compañia", compania.getString("nombre"));
        assertEquals("00", compania.getString("compania"));

        JSONObject subsistema = (JSONObject) items.get(1);
        assertEquals("Subsistema", subsistema.getString("nombre"));
        assertEquals("01", subsistema.getString("subsistema"));

        JSONObject transaccion = (JSONObject) items.get(2);
        assertEquals("Transaccion", transaccion.getString("nombre"));
        assertEquals("02", transaccion.getString("subsistema"));
        assertEquals("0002", transaccion.getString("transaccion"));
    }

}
