This patch rewrites tests to use more Object friendly code in the step definitions and @context object, using Ruby Structs (Simple classes with methods).
it is the first step towards makes scenarios demanding more than one patron possible easier to write, as the structs can have methods, and can be nested
patron = Patron.new generates also a branch and a patron category from this struct
Patron = Struct.new(:cardnumber, :surname, :branch, :category) do def initialize self.cardnumber = generateRandomString self.surname = generateRandomString self.branch = Branch.new self.category = PatronCategory.new end end
and can further trigger page objects or steps to actually generate the branch and patron category