public void TestConnect() { var session = new MockTaskSession(); session.VerifyStart(); session.VerifyCommand(() => session.Connect("bob"), "Connect(bob)"); var logicalUnitList = new[] { "lu1", "lu2" }; SessionExtensions.VerifyDelegate del = () => session.Connect( "bob", "27", logicalUnitList, ConnectFlags.NoLogin); session.VerifyCommand(del, "Connect(\"C:lu1,lu2@bob:27\")"); Assert.Throws <ArgumentException>(() => session.Connect(string.Empty)); // Force an exception. session.ExceptionMode = true; session.AllFail = true; Assert.Throws <X3270ifCommandException>(() => session.Connect("foo")); session.Close(); }
public void TestStatusField() { var session = new MockTaskSession(); // Test StatusField exception when not running. Assert.Throws <InvalidOperationException>(() => session.StatusField(StatusLineField.Formatting)); var startResult = session.Start(); Assert.AreEqual(true, startResult.Success); // Test ordinary StatusField. Assert.AreEqual("F", session.StatusField(StatusLineField.Formatting)); // Test origin-based StatusField. Assert.AreEqual("0", session.StatusField(StatusLineField.CursorRow)); Assert.AreEqual("0", session.StatusField(StatusLineField.CursorColumn)); session.Close(); // Test origin-based StatusField with 1-origin. session = new MockTaskSession(new MockTaskConfig { Origin = 1 }); session.Start(); Assert.AreEqual("1", session.StatusField(StatusLineField.CursorRow)); Assert.AreEqual("1", session.StatusField(StatusLineField.CursorColumn)); // Exercise HostConnected (based on the status line). Assert.AreEqual(true, session.HostConnected); // Change that. session.Connected = false; // (Have to run a dummy command to get a new prompt and change state.) session.Io("Query()"); Assert.AreEqual(false, session.HostConnected); // Now screen-modifying commands will fail. Assert.AreEqual(false, session.Enter().Success); // Now exception mode will fire, too. session.ExceptionMode = true; Assert.Throws <X3270ifCommandException>(() => session.Enter()); // Try requiring 3270 mode instead. session.Config.ModifyFail = ModifyFailType.Require3270; Assert.Throws <X3270ifCommandException>(() => session.Enter()); // And that normally, it's fine. session.Connected = true; session.Connect("bob"); Assert.DoesNotThrow(() => session.Enter()); session.Close(); }