Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save Yerazhas/fbcec51ccaf866988b58fcad16ac8cd3 to your computer and use it in GitHub Desktop.

Select an option

Save Yerazhas/fbcec51ccaf866988b58fcad16ac8cd3 to your computer and use it in GitHub Desktop.
import UIKit
protocol OutputBuilder {
func addElement(_ id: String)
}
class XMLBuilder: OutputBuilder {
func addElement(_ id: String) {}
}
class DOMBuilder: OutputBuilder {
func addElement(_ id: String) {}
}
class RandomTest {}
protocol AbstractRandomTest: class {
var builder: OutputBuilder! { get set }
func createBuilder() -> OutputBuilder
func testAddRoot()
}
extension AbstractRandomTest {
func testAddRoot() {
builder = createBuilder()
builder.addElement("order")
builder.addElement("expiringDate")
}
}
class XMLBuilderTest: RandomTest, AbstractRandomTest {
var builder: OutputBuilder!
func createBuilder() -> OutputBuilder {
return XMLBuilder()
}
}
class DOMBuilderTest: RandomTest, AbstractRandomTest{
var builder: OutputBuilder!
func createBuilder() -> OutputBuilder {
return DOMBuilder()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment