Nie, nie próbuję Ci wmówić, że robiłeś błędy projektowe. Nie mogę, bo nie widziałem tego kodu. Ale co do jednego powinniśmy mieć tu jasność: TDD to, jak sama nazwa wskazuje, development sterowany testami. Jeśli możesz napisać do czegoś unit test, to znaczy, że możesz tam praktykować TDD. OOP nie jest jedynym słusznym narzędziem. Ale nie jest też prawdą, że bez OOP nie da się uzyskać SoC, SRP, sensownego podziału na warstwy, jeśli trzeba, czy nawet i polimorfizmu.
Nie trzeba jednak obiektowo pisać, żeby testować jednostkowo. Wiem, bo robiłem tak w C/C++. Tylko trzeba dążyć do jak najmniejszej (zdroworozsądkowo) liczby zależności. Czyli wszechobecne globale zdecydowanie nie pasują - ot, taki przykład :) Kod musi się dać dzielić na w miarę niezależne jednostki. Jeśli tak jest, można tededować :)
Inna sprawa, że ten Content Pipeline wygląda biednie pod względem testfriendlności, ale to już rozmowa na jakieś dłuższe piwo chyba ;)