Home | History | Annotate | Download | only in misc
      1 //
      2 //  ANTLRFastQueueTest.m
      3 //  ANTLR
      4 //
      5 //  Created by Ian Michell on 13/05/2010.
      6 //  Copyright 2010 Ian Michell and Alan Condit. All rights reserved.
      7 //
      8 
      9 #import "ANTLRFastQueueTest.h"
     10 #import "ANTLRFastQueue.h"
     11 #import "ANTLRError.h"
     12 #import "ANTLRRuntimeException.h"
     13 
     14 @implementation ANTLRFastQueueTest
     15 
     16 -(void) testInit
     17 {
     18 	ANTLRFastQueue *queue = [[ANTLRFastQueue newANTLRFastQueue] retain];
     19 	STAssertNotNil(queue, @"Queue was not created and was nil");
     20 	[queue release];
     21 }
     22 
     23 -(void) testAddAndGet
     24 {
     25 	ANTLRFastQueue *queue = [[ANTLRFastQueue newANTLRFastQueue] retain];
     26 	STAssertNotNil(queue, @"Queue was not created and was nil");
     27 	[queue addObject:@"My String"];
     28 	STAssertTrue([[queue objectAtIndex:0] isKindOfClass:[NSString class]], @"First object is not a NSString");
     29 	STAssertEquals([queue objectAtIndex:0], @"My String", @"Object at index zero is invalid");
     30 	STAssertTrue([queue size] == 1, @"Queue is the wrong size: %d", [queue size]);
     31 	[queue release];
     32 }
     33 
     34 -(void) testInvalidElementIndex
     35 {
     36     //ANTLRRuntimeException *ANTLRNoSuchElementException = [ANTLRNoSuchElementException newException:@"No such element exception"];
     37     id retVal;
     38 	ANTLRFastQueue *queue = [[ANTLRFastQueue newANTLRFastQueue] retain];
     39 	STAssertNotNil(queue, @"Queue was not created and was nil");
     40 	@try 
     41 	{
     42 		retVal = [queue objectAtIndex:100];
     43 	}
     44 	@catch (ANTLRNoSuchElementException *e) 
     45 	{
     46 		STAssertTrue([[e name] isEqualTo:@"ANTLRNoSuchElementException"], @"Exception was not type: ANTLRNoSuchElementException -- %@", [e name]);
     47 		return;
     48 	}
     49 	STFail(@"Exception ANTLRNoSuchElementException was not thrown -- %@", [retVal name]);
     50     [queue release];
     51 }
     52 
     53 -(void) testHead
     54 {
     55 	ANTLRFastQueue *queue = [[ANTLRFastQueue newANTLRFastQueue] retain];
     56 	STAssertNotNil(queue, @"Queue was not created and was nil");
     57 	[queue addObject:@"Item 1"];
     58 	[queue addObject:@"Item 2"];
     59 	[queue addObject:@"Item 3"];
     60 	id head = [queue head];
     61 	STAssertNotNil(head, @"Object returned from head is nil");
     62 	STAssertEquals(head, @"Item 1", @"Object returned was not first item in");
     63 	[queue release];
     64 }
     65 
     66 -(void) testClear
     67 {
     68 	ANTLRFastQueue *queue = [[ANTLRFastQueue newANTLRFastQueue] retain];
     69 	STAssertNotNil(queue, @"Queue was not created and was nil");
     70 	[queue addObject:@"Item 1"];
     71 	[queue addObject:@"Item 2"];
     72 	[queue addObject:@"Item 3"];
     73 	STAssertTrue([queue size] == 3, @"Queue was too small, was: %d expected 3", [queue size]);
     74 	[queue reset];
     75 	STAssertTrue([queue size] == 0, @"Queue is not empty, it's still %d", [queue size]);
     76 	[queue release];
     77 }
     78 
     79 -(void) testDescription
     80 {
     81 	ANTLRFastQueue *queue = [[ANTLRFastQueue newANTLRFastQueue] retain];
     82 	STAssertNotNil(queue, @"Queue was not created and was nil");
     83 	[queue addObject:@"My"];
     84 	[queue addObject:@"String"];
     85 	STAssertTrue([[queue description] isEqualToString:@"My String"], @"Queue description was not right, got: \"%@\" expected: \"My String\"", [queue description]);
     86 	[queue release];
     87 }
     88 
     89 -(void) testRemove
     90 {
     91 	ANTLRFastQueue *queue = [[ANTLRFastQueue newANTLRFastQueue] retain];
     92 	STAssertNotNil(queue, @"Queue was not created and was nil");
     93 	[queue addObject:@"My"];
     94 	[queue addObject:@"String"];
     95 	STAssertTrue([queue size] == 2, @"Queue not the correct size, was: %d expected 2", [queue size]);
     96 	[queue remove];
     97 	STAssertTrue([queue size] == 1, @"Queue not the correct size, was %d expected 1", [queue size]);
     98 	[queue remove]; // test that the queue is reset when we remove the last object...
     99 	STAssertTrue([queue size] == 0, @"Queue was not reset, when we hit the buffer, was still %d", [queue size]);
    100 	[queue release];
    101 }
    102 
    103 @end
    104