This is a simplified version of the Aiport Challenge that I completed as part of the Makers bootcamp in software engineering.
The previous version was completed in Ruby but this time I have used Java as part of my process for learning the language, and specifically to gain understanding and experience in mocking using Mockito, raising exceptions and testing with Junit, and using some AssertJ assertions.
As an air traffic controller
So I can get passengers to a destination
I want to instruct a plane to land at an airport
As an air traffic controller
So I can get passengers on the way to their destination
I want to instruct a plane to take off from an airport and confirm that it is no longer in the airport
As an air traffic controller
To ensure safety
I want to prevent takeoff when weather is stormy
As an air traffic controller
To ensure safety
I want to prevent landing when weather is stormy
As an air traffic controller
To ensure safety
I want to prevent landing when the airport is full
As the system designer
So that the software can be used for many different airports
I would like a default airport capacity that can be overridden as appropriate