This description is copied from TDD Manifesto
Implement a city search functionality. The function takes a string (search text) as input and returns the found cities which corresponds to the search text.
Create a collection of strings that will act as a database for the city names.
City names: Paris, Budapest, Skopje, Rotterdam, Valencia, Vancouver, Amsterdam, Vienna, Sydney, New York City, London, Bangkok, Hong Kong, Dubai, Rome, Istanbul
-
If the search text is fewer than 2 characters, then should return no results. (It is an optimization feature of the search functionality.)
-
If the search text is equal to or more than 2 characters, then it should return all the city names starting with the exact search text. For example for search text “Va”, the function should return Valencia and Vancouver.
-
The search functionality should be case insensitive.
-
The search functionality should work also when the search text is just a part of a city name. For example “ape” should return “Budapest” city.
-
If the search text is a “*” (asterisk), then it should return all the city names.