I half and half agree. Erik is right but there's a trade-off. This is after all an integration test and if you have many independent paths that the code should test, then it shouldn't be an integration test at all so then the solution would be to get out of here and do them as unit tests. 

My practice is to write unit tests (a la Erik's suggestion) for "every possible" thing that can happen and make each test do just one thing and the test name should reflect that accordingly. Unit tests should also cover when things go badly (e.g. you pass in `date = not-a-date`). But integration tests can be sloppy and just do the very basic stuff. Basically, the ideal stuff with no tricky parameters. 

Perhaps take Erik's advice and go a slightly different direction and consider deleting a bunch of tests rather than keeping them all but split up.

End of the day, your call Adrian.