             }
 
             it("generates types.protocols") {
-                expect(generate("Found {{ types.protocols.count }} protocols")).to(equal("Found 1 protocols"))
+                expect(generate("Found {{ types.protocols.count }} protocols")).to(equal("Found 3 protocols"))
             }
 
             it("generates types.classes") {

                    expect(generate("{% if type.Bar.implements.KnownProtocol %} TRUE {% endif %}")).to(equal(" TRUE "))

                    expect(generate("{% if type.ProjectFooSubclass.implements.KnownProtocol %} TRUE {% endif %}")).to(equal(" TRUE "))
                }

                it("generates proper response for type.based") {


        describe("Generator") {

            let fooType = Type(name: "Foo", variables: [Variable(name: "intValue", typeName: "Int")], inheritedTypes: ["Decodable", "AlternativeProtocol"])
            let fooSubclassType = Type(name: "FooSubclass", inheritedTypes: ["Foo", "ProtocolBasedOnKnownProtocol"])
            let barType = Struct(name: "Bar", inheritedTypes: ["NSObject", "ProjectClass", "KnownProtocol", "Decodable"])

            let complexType = Struct(name: "Complex", accessLevel: .public, isExtension: false, variables: [])
