// Path: core/src/main/java/au/com/sensis/stubby/model/StubMessage.java
// public abstract class StubMessage {
// 
//     private List<StubParam> headers;
//     private Object body;
// 
//     protected StubMessage() { }
//     
//     protected StubMessage(StubMessage other) { // copy constructor
//         this.body = (other.body != null) ? DeepCopyUtils.deepCopy(other.body) : null;
//         if (other.headers != null) {
//             this.headers = new ArrayList<StubParam>();
//             for (StubParam param : other.headers) {
//                 headers.add(new StubParam(param));
//             }
//         }
//     }
//     
//     public List<StubParam> getHeaders() {
//         return headers;
//     }
// 
//     public void setHeaders(List<StubParam> headers) {
//         this.headers = headers;
//     }
// 
//     public Object getBody() {
//         return body;
//     }
// 
//     public void setBody(Object body) {
//         this.body = body;
//     }
//     
//     @JsonIgnore
//     public String getHeader(String name) { // get first, case insensitive lookup
//         if (headers != null) {
//             for (StubParam header : headers) {
//                 if (header.getName().equalsIgnoreCase(name)) {
//                     return header.getValue();
//                 }
//             }
//         }
//         return null; // not found
//     }
//     
//     @JsonIgnore
//     public void removeHeader(String name) { // case insensitive lookup
//         if (headers != null) {
//             Iterator<StubParam> iter = headers.iterator();
//             while (iter.hasNext()) {
//                 if (iter.next().getName().equalsIgnoreCase(name)) {
//                     iter.remove();
//                 }
//             }
//         }
//     }
//     
//     @JsonIgnore
//     public void setHeader(String name, String value) { // replace value, case insensitive lookup
//         removeHeader(name);
//         if (headers == null) {
//             headers = new ArrayList<StubParam>();
//         }
//         headers.add(new StubParam(name, value));        
//     }
//     
//     @JsonIgnore
//     public List<String> getHeaders(String name) { // get all, case insensitive lookup
//         List<String> result = new ArrayList<String>();
//         if (headers != null) {
//             for (StubParam header : headers) {
//                 if (header.getName().equalsIgnoreCase(name)) {
//                     result.add(header.getValue());
//                 }
//             }
//         }
//         return result; // empty list if not found
//     }
//     
// }


import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
import au.com.sensis.stubby.model.StubMessage;
package au.com.sensis.stubby.utils;





public class HttpMessageUtilsTest {

    @Test
    public void testUpperCaseHeader() {
        Assert.assertEquals("Header", HttpMessageUtils.upperCaseHeader("header"));
        Assert.assertEquals("Header-Name", HttpMessageUtils.upperCaseHeader("header-name"));
        Assert.assertEquals("X-Header-Name", HttpMessageUtils.upperCaseHeader("x-header-name"));
        Assert.assertEquals("-X-Header-Name", HttpMessageUtils.upperCaseHeader("-x-header-name"));
    }
    
    @Test
    public void testIsText() {
// Path: core/src/main/java/au/com/sensis/stubby/model/StubMessage.java
// public abstract class StubMessage {
// 
//     private List<StubParam> headers;
//     private Object body;
// 
//     protected StubMessage() { }
//     
//     protected StubMessage(StubMessage other) { // copy constructor
//         this.body = (other.body != null) ? DeepCopyUtils.deepCopy(other.body) : null;
//         if (other.headers != null) {
//             this.headers = new ArrayList<StubParam>();
//             for (StubParam param : other.headers) {
//                 headers.add(new StubParam(param));
//             }
//         }
//     }
//     
//     public List<StubParam> getHeaders() {
//         return headers;
//     }
// 
//     public void setHeaders(List<StubParam> headers) {
//         this.headers = headers;
//     }
// 
//     public Object getBody() {
//         return body;
//     }
// 
//     public void setBody(Object body) {
//         this.body = body;
//     }
//     
//     @JsonIgnore
//     public String getHeader(String name) { // get first, case insensitive lookup
//         if (headers != null) {
//             for (StubParam header : headers) {
//                 if (header.getName().equalsIgnoreCase(name)) {
//                     return header.getValue();
//                 }
//             }
//         }
//         return null; // not found
//     }
//     
//     @JsonIgnore
//     public void removeHeader(String name) { // case insensitive lookup
//         if (headers != null) {
//             Iterator<StubParam> iter = headers.iterator();
//             while (iter.hasNext()) {
//                 if (iter.next().getName().equalsIgnoreCase(name)) {
//                     iter.remove();
//                 }
//             }
//         }
//     }
//     
//     @JsonIgnore
//     public void setHeader(String name, String value) { // replace value, case insensitive lookup
//         removeHeader(name);
//         if (headers == null) {
//             headers = new ArrayList<StubParam>();
//         }
//         headers.add(new StubParam(name, value));        
//     }
//     
//     @JsonIgnore
//     public List<String> getHeaders(String name) { // get all, case insensitive lookup
//         List<String> result = new ArrayList<String>();
//         if (headers != null) {
//             for (StubParam header : headers) {
//                 if (header.getName().equalsIgnoreCase(name)) {
//                     result.add(header.getValue());
//                 }
//             }
//         }
//         return result; // empty list if not found
//     }
//     
// }


// Path: core/src/test/java/au/com/sensis/stubby/utils/HttpMessageUtilsTest.java
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
import au.com.sensis.stubby.model.StubMessage;

package au.com.sensis.stubby.utils;





public class HttpMessageUtilsTest {

    @Test
    public void testUpperCaseHeader() {
        Assert.assertEquals("Header", HttpMessageUtils.upperCaseHeader("header"));
        Assert.assertEquals("Header-Name", HttpMessageUtils.upperCaseHeader("header-name"));
        Assert.assertEquals("X-Header-Name", HttpMessageUtils.upperCaseHeader("x-header-name"));
        Assert.assertEquals("-X-Header-Name", HttpMessageUtils.upperCaseHeader("-x-header-name"));
    }
    
    @Test
    public void testIsText() {
        StubMessage message = new StubMessage() { };