Ваш код немного сложен для понимания, НО, исходя из содержания вашего вопроса. Я предполагаю, что вы не понимаете, как работает покрытие кода для условных переходов.
Оператор "if" приводит к двум ветвям: условие true и условие false. Если ваш тест работает только с данными, состояние которых оценивается как «истинное», то ваш охват составляет ровно 1 из 2 ответвлений (что, как я полагаю, и есть в отчете).
Чтобы получить 100% покрытие для этой строки, вам нужно выполнить 2 прохода по этой строке - один с условием, оцененным как true, и один с условием, оцененным как false.