split huge test case into 3 smaller, remove some code from controller into private methods