package cucumber.examples.spring.txn;
import cucumber.api.java.en.Given;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.transaction.support.TransactionSynchronizationManager;
import static org.junit.Assert.assertTrue;
import java.util.List;
@WebAppConfiguration
@ContextConfiguration("classpath:cucumber.xml")
public class UserStepdefs {
@Autowired
private UserRepository userRepository;
@Autowired
private MessageRepository messageRepository;
private User user;
public void thereIsAuser() {
user = new User();
user.setUsername("testuser");
userRepository.save(user);
}
@Given("^a User has posted the following messages:$")
public void a_User_has_posted_the_following_messages(List<Message> messages) throws Throwable {
thereIsAuser();
for (Message m : messages) {
m.setAuthor(user);
messageRepository.save(m);
}
assertTrue("No transaction is active",
TransactionSynchronizationManager.isActualTransactionActive());
}
}