/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/store/MongoDbMessageStoreClaimCheckIntegrationTests.java

https://github.com/pcholakov/spring-integration · Java · 149 lines · 109 code · 19 blank · 21 comment · 17 complexity · 92d314be25cd6798496bf1827bea33f7 MD5 · raw file

  1. /*
  2. * Copyright 2002-2011 the original author or authors.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package org.springframework.integration.mongodb.store;
  17. import org.junit.Test;
  18. import org.springframework.data.mongodb.MongoDbFactory;
  19. import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
  20. import org.springframework.integration.Message;
  21. import org.springframework.integration.mongodb.rules.MongoDbAvailable;
  22. import org.springframework.integration.mongodb.rules.MongoDbAvailableTests;
  23. import org.springframework.integration.support.MessageBuilder;
  24. import org.springframework.integration.transformer.ClaimCheckInTransformer;
  25. import org.springframework.integration.transformer.ClaimCheckOutTransformer;
  26. import com.mongodb.Mongo;
  27. import static org.junit.Assert.assertEquals;
  28. /**
  29. * @author Mark Fisher
  30. */
  31. public class MongoDbMessageStoreClaimCheckIntegrationTests extends MongoDbAvailableTests{
  32. @Test
  33. @MongoDbAvailable
  34. public void stringPayload() throws Exception {
  35. MongoDbFactory mongoDbFactory = new SimpleMongoDbFactory(new Mongo(), "test");
  36. MongoDbMessageStore messageStore = new MongoDbMessageStore(mongoDbFactory);
  37. ClaimCheckInTransformer checkin = new ClaimCheckInTransformer(messageStore);
  38. ClaimCheckOutTransformer checkout = new ClaimCheckOutTransformer(messageStore);
  39. Message<?> originalMessage = MessageBuilder.withPayload("test1").build();
  40. Message<?> claimCheckMessage = checkin.transform(originalMessage);
  41. assertEquals(originalMessage.getHeaders().getId(), claimCheckMessage.getPayload());
  42. Message<?> checkedOutMessage = checkout.transform(claimCheckMessage);
  43. assertEquals(claimCheckMessage.getPayload(), checkedOutMessage.getHeaders().getId());
  44. assertEquals(originalMessage.getPayload(), checkedOutMessage.getPayload());
  45. assertEquals(originalMessage, checkedOutMessage);
  46. //System.out.println("original: " + originalMessage);
  47. //System.out.println("claimcheck: " + claimCheckMessage);
  48. //System.out.println("checkedout: " + checkedOutMessage);
  49. }
  50. @Test
  51. @MongoDbAvailable
  52. public void objectPayload() throws Exception {
  53. MongoDbFactory mongoDbFactory = new SimpleMongoDbFactory(new Mongo(), "test");
  54. MongoDbMessageStore messageStore = new MongoDbMessageStore(mongoDbFactory);
  55. ClaimCheckInTransformer checkin = new ClaimCheckInTransformer(messageStore);
  56. ClaimCheckOutTransformer checkout = new ClaimCheckOutTransformer(messageStore);
  57. Beverage payload = new Beverage();
  58. payload.setName("latte");
  59. payload.setShots(3);
  60. payload.setIced(false);
  61. Message<?> originalMessage = MessageBuilder.withPayload(payload).build();
  62. Message<?> claimCheckMessage = checkin.transform(originalMessage);
  63. assertEquals(originalMessage.getHeaders().getId(), claimCheckMessage.getPayload());
  64. Message<?> checkedOutMessage = checkout.transform(claimCheckMessage);
  65. assertEquals(originalMessage.getPayload(), checkedOutMessage.getPayload());
  66. assertEquals(claimCheckMessage.getPayload(), checkedOutMessage.getHeaders().getId());
  67. assertEquals(originalMessage, checkedOutMessage);
  68. }
  69. @SuppressWarnings("unused")
  70. private static class Beverage {
  71. private String name;
  72. private int shots;
  73. private boolean iced;
  74. public String getName() {
  75. return name;
  76. }
  77. public void setName(String name) {
  78. this.name = name;
  79. }
  80. public int getShots() {
  81. return shots;
  82. }
  83. public void setShots(int shots) {
  84. this.shots = shots;
  85. }
  86. public boolean isIced() {
  87. return iced;
  88. }
  89. public void setIced(boolean iced) {
  90. this.iced = iced;
  91. }
  92. @Override
  93. public int hashCode() {
  94. final int prime = 31;
  95. int result = 1;
  96. result = prime * result + (iced ? 1231 : 1237);
  97. result = prime * result + ((name == null) ? 0 : name.hashCode());
  98. result = prime * result + shots;
  99. return result;
  100. }
  101. @Override
  102. public boolean equals(Object obj) {
  103. if (this == obj) {
  104. return true;
  105. }
  106. if (obj == null) {
  107. return false;
  108. }
  109. if (getClass() != obj.getClass()) {
  110. return false;
  111. }
  112. Beverage other = (Beverage) obj;
  113. if (iced != other.iced) {
  114. return false;
  115. }
  116. if (name == null) {
  117. if (other.name != null) {
  118. return false;
  119. }
  120. }
  121. else if (!name.equals(other.name)) {
  122. return false;
  123. }
  124. if (shots != other.shots) {
  125. return false;
  126. }
  127. return true;
  128. }
  129. }
  130. }