Index: camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java
===================================================================
--- camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java	(revision 642548)
+++ camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java	(working copy)
@@ -78,7 +78,7 @@
         resultEndpoint.assertIsNotSatisfied();
     }
 
-    public void testExpetationsAfterMessagesArrivePass() throws Exception {
+    public void testExpectationsAfterMessagesArrivePass() throws Exception {
         sendMessages(11, 12, 13, 14, 12);
 
         MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
@@ -86,7 +86,7 @@
         resultEndpoint.assertIsNotSatisfied();
     }
 
-    public void testExpetationsAfterMessagesArriveFail() throws Exception {
+    public void testExpectationsAfterMessagesArriveFail() throws Exception {
         sendMessages(11, 12, 13, 14, 12);
 
         MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
@@ -110,12 +110,47 @@
         resultEndpoint.assertIsSatisfied();
     }
 
+    public void testExpectationOfHeader() throws InterruptedException {        
+        MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
+        resultEndpoint.reset();
+        
+        // assert header & value are same
+        resultEndpoint.expectedHeaderReceived("header", "value");
+        sendHeader("header", "value");
+        resultEndpoint.assertIsSatisfied();
+        
+        resultEndpoint.reset();
+        
+        // assert failure when value is different
+        resultEndpoint.expectedHeaderReceived("header", "value1");
+        sendHeader("header", "value");
+        resultEndpoint.assertIsNotSatisfied();       
+
+        resultEndpoint.reset();
+
+        // assert failure when header name is different       
+        resultEndpoint.expectedHeaderReceived("header1", "value");
+        sendHeader("header", "value");
+        resultEndpoint.assertIsNotSatisfied();               
+        
+        resultEndpoint.reset();
+        
+        // assert failure when both header name & value are different
+        resultEndpoint.expectedHeaderReceived("header1", "value1");
+        sendHeader("header", "value");
+        resultEndpoint.assertIsNotSatisfied();                       
+    }
+    
     protected void sendMessages(int... counters) {
         for (int counter : counters) {
             template.sendBodyAndHeader("direct:a", "<message>" + counter + "</message>",
                     "counter", counter);
         }
     }
+    
+    protected void sendHeader(String name, String value) {
+        template.sendBodyAndHeader("direct:a", "body", name, value);
+    }
 
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
