                     Type(name: "NSObject", accessLevel: .none, isExtension: true, inheritedTypes: ["KnownProtocol"]),
                     Type(name: "ProjectClass", accessLevel: .none),
                     Type(name: "ProjectFooSubclass", inheritedTypes: ["FooSubclass"]),
-                    Protocol(name: "KnownProtocol")
+                    Protocol(name: "KnownProtocol"),
+                    Protocol(name: "AlternativeProtocol"),
+                    Protocol(name: "ProtocolBasedOnKnownProtocol", inheritedTypes: ["KnownProtocol"])
             ]
 
             func generate(_ template: String) -> String {

            }

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

            it("generates types.classes") {


        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: [])
