{$MODE OBJFPC} { -*- delphi -*- } {$INCLUDE settings.inc} program test_reportstate; uses dynasties, actors, facilities, techtree, storable, stringstream, dummygame, researchbits; var TestNumber: Cardinal = 0; procedure Test(const Expression: Boolean); begin Inc(TestNumber); if (not Expression) then begin Writeln('Failed test ', TestNumber , '.'); Assert(False); Halt(1); end; end; var Tech: TTechnologyTreeManager; Game: TDummyGame; Dynasty: TDynasty; Actor: TActor; OutputStream: TStringStreamWriterDebug; begin Tech := TTechnologyTreeManager.Create('tests/test_reportstate.tt'); Game := TDummyGame.Create(Tech); TActor.Game := Game; Dynasty := TDynasty.Create('Fred', 'phil'); Actor := TOwnableActor.Create('City of Testing', 'url', 1, 1, Dynasty); Actor.AddFacility(TResearchFacility.Create(Actor)); OutputStream := TStringStreamWriterDebug.Create('8'#0 + // number of fields 'Name'#0'string'#0'City of Testing'#0 + 'Radius'#0'float'#0'1.00000000000000'#0 + 'Mass'#0'float'#0'4.18879020478639'#0 + 'ParentActor'#0'actor-nil'#0 + 'Image'#0'string'#0'url'#0 + 'CurrentOwnerDynasty'#0'dynasty'#0'Fred'#0 + 'ResearchTopics'#0'array'#0'string'#0'2'#0 + // array of strings, length 2 'Topic 1'#0 + 'Topic 3'#0 + 'SelectedResearchTopic'#0'string'#0'Topic 1'#0); Actor.ReportState(Dynasty, OutputStream); OutputStream.Close(); Test(OutputStream.Success); OutputStream.Free(); Actor.Free(); Dynasty.Free(); Game.Free(); Tech.Free(); end.