Good coverage here. These sorts of if/else trees get a bit cumbersome to test all the branches, but it's especially important since any one of them could hide bad syntax or make the incorrect call.