1TraitsTest := UnitTest clone do( 2 setUp := method( 3 super(setUp) 4 self A := Object clone do(foo := 42) 5 ) 6 7 testNoConflicts := method( 8 B := Object clone 9 B addTrait(A) 10 assertEquals(42, B foo) 11 ) 12 13 testConflict := method( 14 B := Object clone do(foo := 23) 15 assertRaisesException(B addTrait(A)) 16 ) 17 18 testConflictRename := method( 19 B := Object clone do(foo := 23) 20 B addTrait(A, Map clone atPut("foo", "fooFromA")) 21 assertEquals(42, B fooFromA) 22 assertEquals(23, B foo) 23 ) 24 25 testMissingArguments := method( 26 assertRaisesException(A addTrait) 27 ) 28) 29