### Question:
Projekt { @JsonProperty(access = JsonProperty.Access.READ_ONLY) @Transient public int getPlaetzeFrei() { return Math.max(0, this.plaetzeGesamt - this.getPlaetzeBelegt()); } protected  Projekt(); private  Projekt(Builder builder); static Builder newBuilder(); static Builder newBuilder(Projekt copy); @JsonProperty(access = JsonProperty.Access.READ_ONLY) @Transient int getPlaetzeFrei(); @JsonProperty(access = JsonProperty.Access.READ_ONLY) @Transient int getPlaetzeBelegt(); void meldeTeilnehmerAn(Teilnehmer anzumeldenderTeilnehmer); boolean storniereTeilnehmer(Teilnehmer zuStornierenderTeilnehmer); boolean entferneTeilnehmerVonProjekt(Teilnehmer zuEntfernenderTeilnehmer); boolean istTeilnehmerAngemeldet(Teilnehmer teilnehmer); boolean hatProjektFreiePlaetze(); long getId(); boolean isAktiv(); String getName(); LocalDate getDatumBeginn(); LocalDate getDatumEnde(); int getMindestAlter(); int getHoechstAlter(); int getPlaetzeGesamt(); int getPlaetzeReserviert(); String getGruppe(); List<Teilnehmer> getAngemeldeteTeilnehmer(); List<Teilnehmer> getStornierteTeilnehmer(); @Override String toString();  }### Answer:
@Test public void project_with_20_totalSlots_has_20_freeSlots() { Projekt project = createSampleProjektBuilder().plaetzeGesamt(20).plaetzeReserviert(0).build(); assertThat(project.getPlaetzeFrei(), is(20)); }
@Test public void project_with_20_totalSlots_and_5_reservedSlots_has_15_freeSlots() { Projekt project = createSampleProjektBuilder().plaetzeGesamt(20).plaetzeReserviert(5).build(); assertThat(project.getPlaetzeFrei(), is(15)); }