import com.bazaarvoice.admanagement.api.IntegrationSpec import com.bazaarvoice.admanagement.core.time.UTCDate case class Campaign(id: String, name: String, client: String, startDate: UTCDate, endDate: UTCDate, deleted: Boolean) class Database { def storeCampaign(campaign: Campaign): Campaign = ??? def fetchCampaign(id: String): Campaign = ??? } class MyCampaign extends IntegrationSpec { val database = new Database it should "properly store a single campaign" in { Given("we have a proper campaign") val campaignToStore = Campaign( id = "someId", name = "someName", client = "someClient", startDate = UTCDate(1955, 10, 6), endDate = UTCDate(1956, 10, 6), deleted = false) And("we store this campaign in the database") database.storeCampaign(campaignToStore) When("we fetch a given campaign") val fetchedCampaign: Campaign = database.fetchCampaign("someId") Then("All the campaign values were stored properly") fetchedCampaign.id shouldBe campaignToStore.id fetchedCampaign.name shouldBe campaignToStore.name fetchedCampaign.client shouldBe campaignToStore.client fetchedCampaign.startDate shouldBe campaignToStore.startDate fetchedCampaign.endDate shouldBe campaignToStore.endDate fetchedCampaign.deleted shouldBe campaignToStore.deleted } }