@@ -13,50 +13,58 @@ * file. */ #include "config.h" -#import "TestsAppDelegate.h" +#import "ObjFW.h" +#import "ObjFWTest.h" + +@interface OFXMLElementBuilderTests: OTTestCase +{ + OFXMLNode *_nodes[2]; + size_t _i; +} +@end -static OFString *const module = @"OFXMLElementBuilder"; -static OFXMLNode *nodes[2]; -static size_t i = 0; +@implementation OFXMLElementBuilderTests +- (void)dealloc +{ + [_nodes[0] release]; + [_nodes[1] release]; -@implementation TestsAppDelegate (OFXMLElementBuilderTests) + [super dealloc]; +} + - (void)elementBuilder: (OFXMLElementBuilder *)builder didBuildElement: (OFXMLElement *)element { - OFEnsure(i == 0); - nodes[i++] = [element retain]; + OTAssertEqual(_i, 0); + _nodes[_i++] = [element retain]; } - (void)elementBuilder: (OFXMLElementBuilder *)builder didBuildOrphanNode: (OFXMLNode *)node { - OFEnsure(i == 1); - nodes[i++] = [node retain]; + OTAssertEqual(_i, 1); + _nodes[_i++] = [node retain]; } -- (void)XMLElementBuilderTests +- (void)testElementBuilder { - void *pool = objc_autoreleasePoolPush(); OFXMLParser *parser = [OFXMLParser parser]; OFXMLElementBuilder *builder = [OFXMLElementBuilder builder]; OFString *string = @"barbaz" " " ""; parser.delegate = builder; builder.delegate = self; - TEST(@"Building elements from parsed XML", - R([parser parseString: string]) && - nodes[0] != nil && [nodes[0].XMLString isEqual: string] && - R([parser parseString: @""]) && - nodes[1] != nil && [nodes[1].XMLString isEqual: @""] && - i == 2) - - [nodes[0] release]; - [nodes[1] release]; - objc_autoreleasePoolPop(pool); + [parser parseString: string]; + OTAssertEqualObjects(_nodes[0].XMLString, string); + + [parser parseString: @""]; + OTAssertEqualObjects(_nodes[1].XMLString, @""); + + OTAssertEqual(_i, 2); } @end