Merge branch 'refs/heads/gh0001_Implement_Season_Service'
Merge branch 'refs/heads/master' into gh0002_Implement_Weather_Service
Created new WeatherSummary class

This class will contain the basic weather summary. So, typically, we will extract the data from WeatherService (be that a WeatherUnderground or other implementation) put it into this class.
We are only really interested in the sunrise and sunset times, plus the general conditions

Signed-off-by: Ippoippo <ippoippo_software@ippoippo.net>
IPPOWundergroundToWeatherSummaryConvertor basics complete

IPPOWundergroundToWeatherSummaryConvertor and basic tests written.

Need to complete mapping of weather summary values to my own IPPOWeather enumeration.
Also need to create custom matcher code for Kiwi

Signed-off-by: Ippoippo <ippoippo_software@ippoippo.net>
New Customer Kiwi Date Matcher

Refactored testing code to use a custom data matcher.
Test a bit more readable

Signed-off-by: Ippoippo <ippoippo_software@ippoippo.net>
Completed work on Convertor class

I should add tests for every single mapping option, but I'll do that later.
In principle, I believe that it's working OK.

Signed-off-by: Ippoippo <ippoippo_software@ippoippo.net>
IPPOWundergroundWeatherServiceImpl reworked, new tests

Refactored/redesigned how IPPOWundergroundWeatherServiceImpl is going to work. Now has a void method as the public interface, with two callback blocks. The intention is that the ViewController code will here specify which method should be called that will then go on to start loading in the Haiku (using other code for that) and finally update the screen.

The tests now use Kiwi. I 'think' they are working. But at the moment, I still need to write the test which handles the scenario where the call to Wunderground API fails, and the appropriate fail block is then invoked.

Finally, the other changes in the code are due to introducing the Uncrustify plugin for Xcode to format the code in a common style. (rather than going off and using AppCode for example)

Signed-off-by: Ippoippo <ippoippo_software@ippoippo.net>
Cleaned up adding appropriate equality methods

Signed-off-by: Ippoippo <ippoippo_software@ippoippo.net>
Added failure tests

Needed to use the OHHTTPStubs utility.
Feels kind of messy to be using it, but it works.

Signed-off-by: Ippoippo <ippoippo_software@ippoippo.net>
Merge branch 'refs/heads/gh0002_Implement_Weather_Service'
Merge branch 'refs/heads/master' into gh0001_Implement_Season_Service
Basic tests for failure cases working

Need to add more tests

Signed-off-by: Ippoippo <ippoippo-software@ippoippo-eco.com>
Test update

New test added and working.
However, I have a code smell in handleRequestForLocationWhenServicesEnabled method.

It relies on a private method to work out if 'locationRefreshRequired'. That method then works on a private property in the delegate which 'caches' the last stored location and timestamp.

WHY am I doing that. LocationManager already tracks history.
So, I should get rid of my properties, and rewrite locationRefreshRequired to use the locations stored in Location Manager.
Then when I inject the mock LocationManager into the class under test, I'll stub out the methods as appropriate.

Signed-off-by: Ippoippo <ippoippo-software@ippoippo-eco.com>
Reworked Location Manager Delegate

New tests, refactored code.
Tests still need to be refactored and new tests added for the CLLocationManagerDelegate methods

Signed-off-by: Ippoippo <ippoippo-software@ippoippo-eco.com>
Tests completed

Signed-off-by: Ippoippo <ippoippo-software@ippoippo-eco.com>