001    /******************************************************************************
002     * Copyright (C) MActor Developers. All rights reserved.                        *
003     * ---------------------------------------------------------------------------*
004     * This file is part of MActor.                                               *
005     *                                                                            *
006     * MActor is free software; you can redistribute it and/or modify             *
007     * it under the terms of the GNU General Public License as published by       *
008     * the Free Software Foundation; either version 2 of the License, or          *
009     * (at your option) any later version.                                        *
010     *                                                                            *
011     * MActor is distributed in the hope that it will be useful,                  *
012     * but WITHOUT ANY WARRANTY; without even the implied warranty of             *
013     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              *
014     * GNU General Public License for more details.                               *
015     *                                                                            *
016     * You should have received a copy of the GNU General Public License          *
017     * along with MActor; if not, write to the Free Software                      *
018     * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA *
019     ******************************************************************************/
020    package org.mactor.ui.cmd;
021    
022    import org.apache.log4j.Logger;
023    import org.mactor.framework.TestContext;
024    import org.mactor.framework.TestEvent;
025    import org.mactor.framework.TestFeedbackListener;
026    import org.mactor.framework.TestEvent.EventType;
027    
028    public class SimpleLogFeedbackHandler implements TestFeedbackListener {
029            protected static Logger log = Logger.getLogger(SimpleLogFeedbackHandler.class);
030            private String getLogPrefix(TestEvent event) {
031                    return event.getTestRunInstanceId() + ";" + event.getTestInstanceId() + ";" + event.getTestSpec().getName() + ";";
032            }
033            public void onNodeEvent(TestEvent event, TestContext context) {
034                    if (event.getEventType().equals(EventType.Start)) {
035                            log.info(getLogPrefix(event) + "Node execution started");
036                    } else {
037                            if (event.isTestCompleteEvent()) {
038                                    if (event.isSuccessful()) {
039                                            log.info(getLogPrefix(event) + "Test completed with SUCCESS");
040                                    } else {
041                                            if (event.getCause() != null)
042                                                    log.info(getLogPrefix(event) + "Test completed with FAILURE. Details:" + event.getCause().getMessage());
043                                            else
044                                                    log.info(getLogPrefix(event) + "Test completed with FAILURE");
045                                    }
046                            } else if (!event.isSuccessful()) {
047                                    if (event.getCause() != null)
048                                            log.info(getLogPrefix(event) + event.getNode().getName() + ";Execution of node failed with:" + event.getCause().getMessage());
049                                    else
050                                            log.info(getLogPrefix(event) + event.getNode().getName() + ";Execution of node failed");
051                            }
052                    }
053            }
054            public void onTestRunCompleted(String testRunInstanceId, int succededCount, int failedCount) {
055                    log.info(testRunInstanceId + ";Test Run comleted with " + succededCount + " SUCCESSFUL tests and " + failedCount + " FAILED tests");
056            }
057    }