Home | History | Annotate | Download | only in stream
      1 /*
      2  * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
      3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
      4  *
      5  * This code is free software; you can redistribute it and/or modify it
      6  * under the terms of the GNU General Public License version 2 only, as
      7  * published by the Free Software Foundation.
      8  *
      9  * This code is distributed in the hope that it will be useful, but WITHOUT
     10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
     12  * version 2 for more details (a copy is included in the LICENSE file that
     13  * accompanied this code).
     14  *
     15  * You should have received a copy of the GNU General Public License version
     16  * 2 along with this work; if not, write to the Free Software Foundation,
     17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     18  *
     19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
     20  * or visit www.oracle.com if you need additional information or have any
     21  * questions.
     22  */
     23 package org.openjdk.testlib.java.util.stream;
     24 
     25 import java.util.ArrayList;
     26 import java.util.Collections;
     27 import java.util.HashMap;
     28 import java.util.List;
     29 import java.util.Map;
     30 
     31 import org.testng.Assert;
     32 import org.testng.ITestResult;
     33 import org.testng.annotations.AfterMethod;
     34 import org.testng.annotations.BeforeMethod;
     35 import org.testng.annotations.Test;
     36 
     37 /**
     38  * LoggingTestCase
     39  *
     40  */
     41 @Test
     42 public class LoggingTestCase extends Assert {
     43     private Map<String, Object> context = new HashMap<>();
     44 
     45     @BeforeMethod
     46     public void before() {
     47         context.clear();
     48     }
     49 
     50     @AfterMethod
     51     public void after(ITestResult result) {
     52         if (!result.isSuccess()) {
     53             List<Object> list = new ArrayList<>();
     54             Collections.addAll(list, result.getParameters());
     55             list.add(context.toString());
     56             result.setParameters(list.toArray(new Object[list.size()]));
     57         }
     58     }
     59 
     60     protected void setContext(String key, Object value) {
     61         context.put(key, value);
     62     }
     63 
     64     protected void clearContext(String key) {
     65         context.remove(key);
     66     }
     67 }
     68