public void TestStringAt() { var session = new MockTaskSession(); session.VerifyStart(); session.VerifyCommand(() => session.StringAt(1, 0, "Fred"), "MoveCursor(1,0) String(Fred)"); session.VerifyCommand( () => session.StringAt(new[] { new StringAtBlock { Row = 1, Column = 0, Text = "Fred" }, new StringAtBlock { Row = 2, Column = 4, Text = "Smith" } }), "MoveCursor(1,0) String(Fred) MoveCursor(2,4) String(Smith)"); session.VerifyCommand( () => session.StringAt(1, 0, "Fred", eraseEof: true), "MoveCursor(1,0) EraseEOF() String(Fred)"); // Exercise row and column checking. Assert.Throws <ArgumentOutOfRangeException>(() => session.StringAt(-1, 0, "foo")); Assert.Throws <ArgumentOutOfRangeException>(() => session.StringAt(0, -1, "foo")); // Force exceptions. session.ExceptionMode = true; session.AllFail = true; Assert.Throws <X3270ifCommandException>(() => session.StringAt(1, 0, "foo")); Assert.Throws <X3270ifCommandException>(() => { var result = session.StringAt(new[] { new StringAtBlock { Row = 1, Column = 0, Text = "Fred" }, new StringAtBlock { Row = 2, Column = 4, Text = "Smith" } }); }); session.Close(); }