Changeset 61

Show
Ignore:
Timestamp:
06/30/08 00:08:52 (2 months ago)
Author:
baxissimo
Message:

Added test for custom binary load/dump

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/examples/util/serializer/FunctionTest.d

    r59 r61  
    23142314 
    23152315//------------------------------------------------------------------------------ 
    2316 /+ 
    2317 TODO: Custom loaders/dumpers don't work with binary 
    23182316unittest { testCase.execute("load/dump - custom loaders/dumpers", { 
    23192317    MyClass input; 
     
    23212319 
    23222320    binserializer.global().typeDescription!(MyClass).loader = 
    2323         delegate bool (ref MyClass value, binserializer.Archive archive) { 
     2321        delegate bool (ref MyClass value, binserializer.Archive archive)  
     2322        { 
    23242323            value = new MyClass; 
    23252324 
     
    23282327            } 
    23292328 
    2330             skip(archive.storage, archive.defSkip.p_skip); 
    23312329            check(archive.traverse(value.x)); 
    2332             check(skip(archive.storage, "-") != 0); 
    23332330            check(archive.traverse(value.y)); 
    2334             check(skip(archive.storage, "-") != 0); 
    23352331            check(archive.traverse(value.z)); 
    23362332 
    23372333            //TODO: rethink visibility of methods; e.g. traverse to Archive?? 
    23382334            return true; 
    2339         }
     2335        }
    23402336 
    23412337    binserializer.global().typeDescription!(MyClass).dumper = 
    2342         delegate bool (ref MyClass value, binserializer.Archive archive) { 
    2343             archive.storage.put(format("%d-%d-%d", value.x, value.y, value.z)); 
     2338        delegate bool (ref MyClass value, binserializer.Archive archive)  
     2339        { 
     2340            archive.traverse(value.x); 
     2341            archive.traverse(value.y); 
     2342            archive.traverse(value.z); 
    23442343            return true; 
    23452344        }; 
     
    23472346    input = new MyClass; input.x = 5; input.y = 10; input.z = 15; 
    23482347    output = binserializer.dump(input); 
    2349     trace(output); 
    2350     assert(output == "5-10-15"); 
    23512348    assert(binserializer.load!(MyClass)(output) == input); 
    23522349});} 
    2353 +/ 
    23542350 
    23552351