Skip to content

Instantly share code, notes, and snippets.

View tbelmega's full-sized avatar

Thiemo Belmega tbelmega

View GitHub Profile
class PastaAppConfig(
val env0BaseURL: String,
val env1Name: String,
val env1BaseURL: String
) {
fun getBaseUrl(targetEnvironment: String): String {
return if (targetEnvironment === env1Name) env1BaseURL
else env0BaseURL
}
class PastaAppConfigTest {
@Test
fun `getBaseUrl returns env1 if targetEnvironment is env1`{
// given
val config = PastaAppConfig("https://foo-sandbox.bar", "Production", "https://foo.bar")
// when
val result = config.getBaseUrl("Production")
val str1 = "Production"
val str2 = "Production" // referentially equal, String pool
val str3 = String("Production") // new object in memory, not referentially equal
@ActiveProfiles("test")
@RunWith(SpringJUnit4ClassRunner::class)
@DataJpaTest
class ProductRepositoryTest {
@Autowired
private lateinit var productRepository: ProductRepository
@Test
fun `saves product in database and loads by id`() {
@Test
fun `findMostOrderedProducts - no orders in db - return empty list`() {
// given
productRepository.save(Product("1", "Ryzen 7 2700X", "AMD"))
productRepository.save(Product("2", "Core i9 9900K", "Intel"))
// when
val foundProducts = productRepository.findMostOrderedProducts(1)
// then
@Test
fun `findMostOrderedProducts - 6 orders for 3 products in db - returns Top 2`() {
// given
// when
val foundProducts = productRepository.findMostOrderedProducts(2)
// then
}
@Test
fun `findMostOrderedProducts - 6 orders for 3 products in db - returns Top 2`() {
// given
// when
val foundProducts = productRepository.findMostOrderedProducts(numberOfProducts)
// then
assertThat(foundProducts).hasSize(numberOfProducts)
assertThat(foundProducts).containsExactlyInAnyOrder(product1, product2)
@Test
fun `findMostOrderedProducts - 6 orders for 3 products in db - returns Top 2`() {
// given
val numberOfProducts = 2
val product1 = Product("1", "Ryzen 7 2700X", "AMD")
val product2 = Product("2", "Core i9 9900K", "Intel")
// when
val foundProducts = productRepository.findMostOrderedProducts(numberOfProducts)
@Test
fun `findMostOrderedProducts - 6 orders for 3 products in db - returns Top 2`() {
// given
val numberOfProducts = 2
val product1 = Product("1", "Ryzen 7 2700X", "AMD")
val product2 = Product("2", "Core i9 9900K", "Intel")
val product3 = Product("3", "Ryzen Threadripper 2990WX", "AMD")
productRepository.saveAll(setOf(product1, product2, product3))
val order1 = Order("1", 1, product1.id, LocalDate.now(), 1)
@Test
fun `findMostOrderedProducts - 6 orders for 3 products in db - returns Top 2`() {
// given
val numberOfProducts = 2
val product1 = Product("1", "Ryzen 7 2700X", "AMD")
val product2 = Product("2", "Core i9 9900K", "Intel")
val product3 = Product("3", "Ryzen Threadripper 2990WX", "AMD")
productRepository.saveAll(setOf(product1, product2, product3))
persistNewOrderForProduct(product1.id)