-- /ivy/binding/hickory/hickoryTest.mesa
DIRECTORY
BasicTime USING [ earliestGMT, latestGMT],
Commander USING [CommandProc, Register],
Hickory USING [ EventList, Event, Group, Property, ForgetEvent, RestoreEvents, DestroyEvent, InsertToGroup, RemoveFromGroup, ListGroups, RemoveGroup, SetProperty, GetProperty, ListProperties, nullEvent, EventTuple, EnterEvent, Error, GroupSet, PropertySet],
RopeSets,
Rope USING [ ROPE]
;
HickoryTest: CEDAR PROGRAM
IMPORTS Hickory, Commander, BasicTime
= BEGIN
OPEN Hickory;
DoIt: Commander.CommandProc = BEGIN
evl: EventList;
groups: GroupSet;
props: PropertySet;
ri: REF INTEGER;
rb: REF BOOLEAN;
rr: REF Rope.ROPE;
ev: EventTuple;
evl ← RestoreEvents[ BasicTime.earliestGMT, BasicTime.latestGMT];
InsertToGroup[ evl.first.Key, RopeSets.RopeSet[Head: NEW[RopeSets.RopeSetEl ← [Value: "groupA"]]]];
InsertToGroup[ evl.rest.first.Key, RopeSets.RopeSet[Head: NEW[RopeSets.RopeSetEl ← [Value: "groupB"]]]];
groups ← ListGroups[];
RemoveFromGroup[ evl.first.Key, RopeSets.RopeSet[Head: NEW[RopeSets.RopeSetEl ← [Value: "groupA"]]]];
RemoveGroup[ "groupA"];
RemoveGroup[ "groupB"];
groups ← ListGroups[];
ev ← evl.first; ev.Key ← nullEvent;
DestroyEvent[ evl.first.Key];
ev ← EnterEvent[ ev, RopeSets.RopeSet[Head: NEW[RopeSets.RopeSetEl ← [Value:"GroupC"]]]];
ForgetEvent[ ev.Key, TRUE];
evl ← RestoreEvents[ BasicTime.earliestGMT, BasicTime.latestGMT];
groups ← ListGroups[];
ForgetEvent[ ev.Key, FALSE];
evl ← RestoreEvents[ BasicTime.earliestGMT, BasicTime.latestGMT];
SetProperty[ ev.Key, "propA", NEW[ INTEGER ← 1]];
SetProperty[ ev.Key, "propB", NEW[ BOOLEAN ← TRUE]];
SetProperty[ ev.Key, "propC", NEW[ Rope.ROPE ← "Hello"]];
props ← ListProperties[];
SetProperty[ ev.Key, "propA", NEW[ BOOLEAN ← FALSE] ! Hickory.Error => IF errCode = MismatchedPropertyType THEN CONTINUE ];
ri ← NARROW[ GetProperty[ ev.Key, "propA"]];
rb ← NARROW[ GetProperty[ ev.Key, "propB"]];
rr ← NARROW[ GetProperty[ ev.Key, "propC"]];
NULL; NULL;
END; -- DoIt
Commander.Register["TestHickory", DoIt, "TestHickory: Randomly testing some of the routines..{cr})"];
END.