Skip to content

Commit 70cfdf5

Browse files
Merge pull request #342 from qbicsoftware/development
Prepare Release 2.23.0
2 parents 9a96f07 + 296e58a commit 70cfdf5

File tree

7 files changed

+50
-6
lines changed

7 files changed

+50
-6
lines changed

src/main/groovy/life/qbic/datamodel/dtos/business/Affiliation.groovy

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,12 @@ final class Affiliation {
6666
*/
6767
final AffiliationLabel label
6868

69+
/**
70+
* Boolean flag if an affiliation is active
71+
* @since 2.23.0
72+
*/
73+
final Boolean active
74+
6975
static class Builder {
7076

7177
int id
@@ -86,6 +92,8 @@ final class Affiliation {
8692

8793
AffiliationLabel label
8894

95+
Boolean active
96+
8997
Builder(String organisation, String street, String postalCode, String city) {
9098
this.id = id
9199
this.organisation = organisation
@@ -96,6 +104,7 @@ final class Affiliation {
96104
this.country = "Germany"
97105
this.category = AffiliationCategory.EXTERNAL
98106
this.label = AffiliationLabel.MNF
107+
this.active = Boolean.TRUE
99108
}
100109

101110
Builder id(int id) {
@@ -128,6 +137,16 @@ final class Affiliation {
128137
return this
129138
}
130139

140+
Builder setInactive() {
141+
this.active = Boolean.FALSE
142+
return this
143+
}
144+
145+
Builder setActive() {
146+
this.active = Boolean.TRUE
147+
return this
148+
}
149+
131150

132151
Affiliation build() {
133152
return new Affiliation(this)
@@ -145,6 +164,7 @@ final class Affiliation {
145164
this.category = builder.category
146165
this.city = builder.city
147166
this.label = builder.label
167+
this.active = builder.active
148168
}
149169

150170
@Override

src/main/groovy/life/qbic/datamodel/dtos/business/services/MetabolomicAnalysis.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import life.qbic.datamodel.dtos.business.facilities.Facility
1111
* @since 2.4.0
1212
*/
1313
@EqualsAndHashCode(callSuper = true)
14-
class MetabolomicAnalysis extends AtomicProduct {
14+
class MetabolomicAnalysis extends PartialProduct {
1515
/**
1616
* Basic product constructor.
1717
*

src/main/groovy/life/qbic/datamodel/dtos/business/services/PrimaryAnalysis.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import life.qbic.datamodel.dtos.business.facilities.Facility
1111
* @since 1.12.0
1212
*/
1313
@EqualsAndHashCode(callSuper = true)
14-
class PrimaryAnalysis extends AtomicProduct {
14+
class PrimaryAnalysis extends PartialProduct {
1515
/**
1616
* Basic product constructor.
1717
*

src/main/groovy/life/qbic/datamodel/dtos/business/services/ProteomicAnalysis.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import life.qbic.datamodel.dtos.business.facilities.Facility
1111
* @since 2.4.0
1212
*/
1313
@EqualsAndHashCode(callSuper = true)
14-
class ProteomicAnalysis extends AtomicProduct {
14+
class ProteomicAnalysis extends PartialProduct {
1515

1616
/**
1717
* Basic product constructor.

src/main/groovy/life/qbic/datamodel/dtos/business/services/SecondaryAnalysis.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import life.qbic.datamodel.dtos.business.facilities.Facility
1212
* @since 1.12.0
1313
*/
1414
@EqualsAndHashCode(callSuper = true)
15-
class SecondaryAnalysis extends AtomicProduct {
15+
class SecondaryAnalysis extends PartialProduct {
1616
/**
1717
* Basic product constructor.
1818
*

src/main/groovy/life/qbic/datamodel/dtos/business/services/Sequencing.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import life.qbic.datamodel.dtos.business.facilities.Facility
1111
* @since 1.12.0
1212
*/
1313
@EqualsAndHashCode(callSuper = true)
14-
class Sequencing extends AtomicProduct {
14+
class Sequencing extends PartialProduct {
1515
/**
1616
* Basic product constructor.
1717
*

src/test/groovy/life/qbic/datamodel/dtos/business/ProductItemSpec.groovy

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
package life.qbic.datamodel.dtos.business
22

33
import life.qbic.datamodel.dtos.business.facilities.Facility
4+
import life.qbic.datamodel.dtos.business.services.DataStorage
5+
import life.qbic.datamodel.dtos.business.services.ExternalServiceProduct
6+
import life.qbic.datamodel.dtos.business.services.MetabolomicAnalysis
47
import life.qbic.datamodel.dtos.business.services.PrimaryAnalysis
58
import life.qbic.datamodel.dtos.business.services.Product
69
import life.qbic.datamodel.dtos.business.services.ProductUnit
10+
import life.qbic.datamodel.dtos.business.services.ProjectManagement
11+
import life.qbic.datamodel.dtos.business.services.ProteomicAnalysis
12+
import life.qbic.datamodel.dtos.business.services.SecondaryAnalysis
713
import life.qbic.datamodel.dtos.business.services.Sequencing
814
import spock.lang.Specification
915
import spock.lang.Unroll
@@ -101,5 +107,23 @@ class ProductItemSpec extends Specification {
101107
product.currency.displayName == "Euro"
102108
}
103109

104-
110+
def "ProductItems allow partial quantities for all services"() {
111+
112+
when: "ProductItems for all service products can be created"
113+
ProductItem productItem = new ProductItem(quantity, product, totalPrice, quantityDiscount)
114+
115+
then: "No exceptions are thrown"
116+
noExceptionThrown()
117+
118+
where: "for every service product"
119+
quantity | internalUnitPrice | product | totalPrice | quantityDiscount
120+
1.1 | 1 | new Sequencing("Sequencing", "Sequencing description", 1.0, 3.0, ProductUnit.PER_SAMPLE, 1, Facility.QBIC) | quantity * internalUnitPrice | 0.0
121+
2.2 | 2 | new PrimaryAnalysis("Primary Analysis", "Primary Analysis description", 2.0, 4.0, ProductUnit.PER_CYCLE, 2, Facility.QBIC) | quantity * internalUnitPrice | 0.0
122+
3.3 | 3 | new SecondaryAnalysis("Secondary Analysis", "Secondary Analysis description", 3.0, 5.0, ProductUnit.PER_DATASET, 3, Facility.QBIC) | quantity * internalUnitPrice | 0.0
123+
4.4 | 4 | new ProteomicAnalysis("Proteomic Analysis", "Proteomic Analysis description", 4.0, 6.0, ProductUnit.PER_FLOW_CELL, 4, Facility.QBIC) | quantity * internalUnitPrice | 0.0
124+
5.5 | 5 | new MetabolomicAnalysis("Metabolomic Analysis", "Metabolomic Analysis description", 5.0, 7.0, ProductUnit.PER_100_MICROGRAM_PEPTIDE_CHANNEL, 5, Facility.QBIC) | quantity * internalUnitPrice | 0.0
125+
6.6 | 6 | new ProjectManagement("Project Management", "Project Management description", 6.0, 8.0, ProductUnit.PER_HOUR, 6, Facility.QBIC) | quantity * internalUnitPrice | 0.0
126+
7.7 | 7 | new DataStorage("Data Storage", "Data Storage description", 7.0, 9.0, ProductUnit.PER_GIGABYTE, 7, Facility.QBIC) | quantity * internalUnitPrice | 0.0
127+
8.8 | 8 | new ExternalServiceProduct("External Service", "External Service description", 8.0, 10.0, ProductUnit.PER_PROJECT, 8, Facility.CEGAT) | quantity * 10 | 0.0
128+
}
105129
}

0 commit comments

Comments
 (0)