diff options
Diffstat (limited to 'bindings/objc/test/SwordModuleTest.m')
-rw-r--r-- | bindings/objc/test/SwordModuleTest.m | 200 |
1 files changed, 174 insertions, 26 deletions
diff --git a/bindings/objc/test/SwordModuleTest.m b/bindings/objc/test/SwordModuleTest.m index a308513..2f1a489 100644 --- a/bindings/objc/test/SwordModuleTest.m +++ b/bindings/objc/test/SwordModuleTest.m @@ -6,43 +6,184 @@ // Copyright 2010 Software by MABE. All rights reserved. // -#import <ObjCSword/ObjCSword.h> #import "SwordModuleTest.h" +#import <ObjCSword/ObjCSword.h> + +@class SwordModule, SwordManager; + +@interface SwordModuleTest : XCTestCase { + SwordManager *mgr; + SwordModule *mod; +} + +@end @implementation SwordModuleTest - (void)setUp { - [Configuration configWithImpl:[[[OSXConfiguration alloc] init] autorelease]]; - mgr = [SwordManager managerWithPath:[[Configuration config] defaultModulePath]]; - mod = [mgr moduleWithName:@"GerNeUe"]; + [Configuration configWithImpl:[[OSXConfiguration alloc] init]]; + + [[FilterProviderFactory providerFactory] initWithImpl:[[DefaultFilterProvider alloc] init]]; + + mgr = [SwordManager managerWithPath:[[[NSBundle bundleForClass:[self class]] resourcePath] stringByAppendingPathComponent:@"TestModules"]]; + mod = [mgr moduleWithName:@"KJV"]; } -- (void)testLoopRenderedVerses { - SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"GerSch"]; - STAssertNotNil(bible, @"Module is nil"); +- (void)testModuleIntroductionGer { + SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"GerNeUe"]; - NSArray *verses = [bible renderedTextEntriesForRef:@"Gen"]; - STAssertNotNil(verses, @""); - STAssertTrue([bible numberOfVerseKeysForReference:@"Gen"] == [verses count], @""); + NSString *modIntro = [bible moduleIntroduction]; + NSLog(@"mod intro: %@", modIntro); + XCTAssertNotNil(modIntro); + XCTAssertTrue([@"Im Anfang schuf Gott Himmel und Erde." isEqualToString:modIntro]); } -- (void)testRenderedVerseText { - SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"GerSch"]; - STAssertNotNil(bible, @"Module is nil"); +/* +- (void)testFirstBookATIntro { + SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"]; - SwordModuleTextEntry *text = [bible textEntryForKeyString:@"gen1.1" textType:TextTypeRendered]; - STAssertNotNil(text, @""); - STAssertTrue([[text text] length] > 0, @""); + SwordBibleBook *book = [bible bookList][0]; + NSString *intro = [bible bookIntroductionFor:book]; + NSLog(@"testament: '%i', book '%@' intro: %@", [book testament], [book name], intro); + XCTAssertNotNil(intro); + XCTAssertTrue([intro hasPrefix:@" <!P><br />Das erste Buch der Bibel wird auch Genesis"]); } +*/ -- (void)testCloneModule { - SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"GerSch"]; - STAssertNotNil(bible, @"Module is nil"); +- (void)testFirstBookATIntroGer { + SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"GerNeUe"]; - /* - SwordBible *cloned = (SwordBible *)[bible clone]; - STAssertNotNil(cloned, @"Module is nil"); - */ + SwordBibleBook *book = [bible bookList][0]; + NSString *intro = [bible bookIntroductionFor:book]; + NSLog(@"testament: '%i', book '%@' intro: %@", [book testament], [book name], intro); + XCTAssertNotNil(intro); + XCTAssertTrue([intro hasPrefix:@" <!P><br />Das erste Buch der Bibel wird auch Genesis"]); +} + +/* +- (void)testFirstBookNTIntro { + SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"]; + + SwordBibleBook *book = [bible bookWithNamePrefix:@"Mat"]; + NSString *intro = [bible bookIntroductionFor:book]; + NSLog(@"testament: '%i', book '%@' intro: %@", [book testament], [book name], intro); + XCTAssertNotNil(intro); + XCTAssertTrue([intro hasPrefix:@" <!P><br />Um die Zeit der Apostelversammlung herum"]); +} +*/ + +- (void)testJesusWordsInRed { + SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"]; + XCTAssertNotNil(bible, @"Module is nil"); + + [mgr setGlobalOption:SW_OPTION_REDLETTERWORDS value:SW_ON]; + SwordBibleTextEntry *text = (SwordBibleTextEntry *) [bible renderedTextEntryForRef:@"Mat 4:4"]; + XCTAssertTrue(text != nil); + NSLog(@"Mat 4:4: %@", [text text]); + XCTAssertTrue([[text text] containsString:@"But he answered and said, <font color=\"red\"> It is written, Man shall not live by bread alone, but by every word that proceedeth out of the mouth of God.</font>"]); +} + +- (void)testStrongsNumberHebrewRetrieval { + SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"]; + XCTAssertNotNil(bible, @"Module is nil"); + + [bible setKeyString:@"Gen 1:1"]; + NSArray *strongsNumbers = [bible entryAttributeValuesLemma]; + XCTAssertTrue(strongsNumbers != nil); + XCTAssertTrue([strongsNumbers count] > 0); + NSString *combinedString = [strongsNumbers componentsJoinedByString:@","]; + NSLog(@"%@", combinedString); + XCTAssertTrue([@"H07225,H0430,H0853 H01254,H08064,H0853,H0776" isEqualToString:combinedString]); +} + +- (void)testStrongsNumberHebrewNormalizedRetrieval { + SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"]; + XCTAssertNotNil(bible, @"Module is nil"); + + [bible setKeyString:@"Gen 1:1"]; + NSArray *strongsNumbers = [bible entryAttributeValuesLemmaNormalized]; + XCTAssertTrue(strongsNumbers != nil); + XCTAssertTrue([strongsNumbers count] > 0); + NSString *combinedString = [strongsNumbers componentsJoinedByString:@","]; + NSLog(@"%@", combinedString); + XCTAssertTrue([@"H07225,H00430,H00853,H01254,H08064,H00853,H00776" isEqualToString:combinedString]); +} + +- (void)testStrongsNumberGreekRetrieval { + SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"]; + XCTAssertNotNil(bible, @"Module is nil"); + + [bible setKeyString:@"Mat 1:1"]; + NSArray *strongsNumbers = [bible entryAttributeValuesLemma]; + XCTAssertTrue(strongsNumbers != nil); + XCTAssertTrue([strongsNumbers count] > 0); + NSString *combinedString = [strongsNumbers componentsJoinedByString:@","]; + NSLog(@"%@", combinedString); + XCTAssertTrue([@"G976,G1078,G2424,G5547,G5207,G1138,G5207,G11" isEqualToString:combinedString]); +} + +- (void)testStrongsNumberGreekNormalizedRetrieval { + SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"]; + XCTAssertNotNil(bible, @"Module is nil"); + + [bible setKeyString:@"Mat 1:1"]; + NSArray *strongsNumbers = [bible entryAttributeValuesLemmaNormalized]; + XCTAssertTrue(strongsNumbers != nil); + XCTAssertTrue([strongsNumbers count] > 0); + NSString *combinedString = [strongsNumbers componentsJoinedByString:@","]; + NSLog(@"%@", combinedString); + XCTAssertTrue([@"G00976,G01078,G02424,G05547,G05207,G01138,G05207,G00011" isEqualToString:combinedString]); +} + +- (void)testFirstBookNTIntroGer { + SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"GerNeUe"]; + + SwordBibleBook *book = [bible bookWithNamePrefix:@"Mat"]; + NSString *intro = [bible bookIntroductionFor:book]; + NSLog(@"testament: '%i', book '%@' intro: %@", [book testament], [book name], intro); + XCTAssertNotNil(intro); + XCTAssertTrue([intro hasPrefix:@" <!P><br />Um die Zeit der Apostelversammlung herum"]); +} + +- (void)testPreverseHeading { + SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"]; + + [mgr setGlobalOption:SW_OPTION_HEADINGS value:SW_ON]; + SwordBibleTextEntry *text = (SwordBibleTextEntry *) [bible renderedTextEntryForRef:@"Numbers 1:47"]; + NSLog(@"Preverse text: %@", [text preVerseHeading]); + XCTAssertTrue([[text preVerseHeading] length] > 0); + XCTAssertTrue([[text preVerseHeading] isEqualToString:@"<title>Die Sonderstellung der Leviten</title>"]); + [mgr setGlobalOption:SW_OPTION_HEADINGS value:SW_OFF]; +} + +- (void)testPreverseHeading2 { + SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"GerNeUe"]; + + [mgr setGlobalOption:SW_OPTION_HEADINGS value:SW_ON]; + SwordBibleTextEntry *text = (SwordBibleTextEntry *) [bible renderedTextEntryForRef:@"Numbers 4:21"]; + NSLog(@"Preverse text: %@", [text preVerseHeading]); + XCTAssertTrue([[text preVerseHeading] length] > 0); + XCTAssertTrue([[text preVerseHeading] isEqualToString:@"<title>Die Gerschoniten</title>"]); + [mgr setGlobalOption:SW_OPTION_HEADINGS value:SW_OFF]; +} + +- (void)testLoopRenderedVerses { + SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"]; + XCTAssertNotNil(bible, @"Module is nil"); + + NSArray *verses = [bible renderedTextEntriesForRef:@"Gen"]; + XCTAssertNotNil(verses, @""); + XCTAssertTrue([bible numberOfVerseKeysForReference:@"Gen"] == [verses count], @""); +} + +- (void)testRenderedVerseText { + SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"]; + XCTAssertNotNil(bible, @"Module is nil"); + + SwordModuleTextEntry *text = [bible renderedTextEntryForRef:@"gen1.1"]; + XCTAssertNotNil(text, @""); + NSLog(@"text: %@", [text text]); + XCTAssertTrue([[text text] length] > 0, @""); } - (void)testLoopWithModulePos { @@ -129,7 +270,7 @@ [vk setKeyText:[lk keyText]]; long lowVerse = [vk verse] - context; long highVerse = lowVerse + (context * 2); - [vk setVerse:lowVerse]; + [vk setVerse:(int)lowVerse]; [mod setSwordKey:vk]; for(;lowVerse <= highVerse;lowVerse++) { ref = [vk keyText]; @@ -149,13 +290,20 @@ } } -- (void)testStrippedTextForRef { - SwordVerseKey *vk = [SwordVerseKey verseKeyWithRef:@"1Mo 1:2"]; +- (void)testVersePositioning { + SwordVerseKey *vk = [SwordVerseKey verseKeyWithRef:@"gen 1:2"]; NSLog(@"start position: %@", [vk keyText]); [vk decrement]; NSLog(@"decrement position: %@", [vk keyText]); + XCTAssertTrue([vk chapter] == 1); + XCTAssertTrue([vk book] == 1); + XCTAssertTrue([vk verse] == 1); + [vk setVerse:[vk verse] + 3]; NSLog(@"verse + 3: %@", [vk keyText]); + XCTAssertTrue([vk chapter] == 1); + XCTAssertTrue([vk book] == 1); + XCTAssertTrue([vk verse] == 4); } @end |