Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test case for 3185 #12

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions src/test/java/org/example/domain/Beschikking.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package org.example.domain;

import javax.persistence.*;
import java.util.Set;

@Entity
@Table(name = "jw_beschikking")
public class Beschikking {

@Id
long id;

final String b;
@OneToMany(mappedBy = "beschikking", cascade = CascadeType.ALL)
private Set<ProductToegewezen> toegewezenProducten;

public Beschikking(String b) {
this.b = b;
}

public String b() {
return b;
}

public Set<ProductToegewezen> toegewezenProducten() {
return toegewezenProducten;
}
}
35 changes: 35 additions & 0 deletions src/test/java/org/example/domain/MeldingAanvangProduct.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package org.example.domain;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "jw_melding_aanvang_product")
public class MeldingAanvangProduct {

@Id
long id;

final String map;

@ManyToOne(optional = false)
ProductToegewezen toegewezenProduct;

public MeldingAanvangProduct(String map) {
this.map = map;
}

public String map() {
return map;
}

public ProductToegewezen toegewezenProduct() {
return toegewezenProduct;
}

public void setToegewezenProduct(ProductToegewezen toegewezenProduct) {
this.toegewezenProduct = toegewezenProduct;
}
}
25 changes: 25 additions & 0 deletions src/test/java/org/example/domain/MutatieProduct.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package org.example.domain;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "jw_mutatie_product")
public class MutatieProduct {

@Id
long id;

final String aprod;

@ManyToOne(optional = false)
ProductToegewezen toegewezenProduct;

public MutatieProduct(String aprod) {
this.aprod = aprod;
}


}
43 changes: 43 additions & 0 deletions src/test/java/org/example/domain/ProductToegewezen.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package org.example.domain;

import javax.persistence.*;
import java.util.Set;

@Entity
@Table(name = "jw_product_toegewezen")
public class ProductToegewezen {

@Id
long id;
final String tg;

@ManyToOne(optional = false)
Beschikking beschikking;

@OneToMany(mappedBy = "toegewezenProduct", cascade = CascadeType.ALL)
private Set<MeldingAanvangProduct> meldingenAanvangProduct;

@OneToMany(mappedBy = "toegewezenProduct", cascade = CascadeType.ALL)
private Set<MutatieProduct> mutatiesProduct;

public ProductToegewezen(String tg) {
this.tg = tg;
}

public Beschikking beschikking() {
return beschikking;
}

public void setBeschikking(Beschikking beschikking) {
this.beschikking = beschikking;
}

public Set<MeldingAanvangProduct> meldingenAanvangProduct() {
return meldingenAanvangProduct;
}

public Set<MutatieProduct> mutatiesProduct() {
return mutatiesProduct;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package org.example.domain;

import io.ebean.DB;
import io.ebean.test.LoggedSql;
import org.junit.jupiter.api.Test;

import java.util.List;

import static org.assertj.core.api.Assertions.assertThat;

class TestDeleteCascadeCascadeCasade {

@Test
void deleteCascade() {

ProductToegewezen pt = new ProductToegewezen("pt");
pt.meldingenAanvangProduct().add(new MeldingAanvangProduct("map"));
pt.mutatiesProduct().add(new MutatieProduct("mp"));
Beschikking b = new Beschikking("b");
b.toegewezenProducten().add(pt);

DB.save(b);

LoggedSql.start();

DB.delete(b);

List<String> sql = LoggedSql.stop();

assertThat(sql).hasSize(8);
assertThat(sql.get(0)).contains("select t0.id from jw_product_toegewezen t0 where beschikking_id=?");
assertThat(sql.get(1)).contains("delete from jw_melding_aanvang_product where (toegewezen_product_id) "); // in | any
assertThat(sql.get(2)).contains(" -- bind(Array[1]");
assertThat(sql.get(3)).contains("delete from jw_mutatie_product where (toegewezen_product_id)"); // in | any
assertThat(sql.get(4)).contains(" -- bind(Array[1]");
assertThat(sql.get(5)).contains("delete from jw_product_toegewezen where id "); // in | any
assertThat(sql.get(6)).contains(" -- bind(Array[1]");
assertThat(sql.get(7)).contains("delete from jw_beschikking where id=?");
}
}