public void ValidUser() { MockLogger3 logger = new MockLogger3(); logger.ExpectedName = "AccessControl"; logger.AddExpectedMsg( "Checking access for dave to secrets"); logger.AddExpectedMsg("Access granted"); // set up the mock database MockDbConnection conn = new MockDbConnection(); MockCommand cmd = new MockCommand(); MockDataReader rdr = new MockDataReader(); conn.SetExpectedCommand(cmd); cmd.SetExpectedCommandText( AccessController1.CHECK_SQL); cmd.SetExpectedExecuteCalls(1); cmd.SetExpectedParameter( new MockDataParameter("@user", "dave")); cmd.SetExpectedParameter( new MockDataParameter("@password", "shhh")); cmd.SetExpectedParameter( new MockDataParameter("@resource", "secrets")); cmd.SetExpectedReader(rdr); object [,] rows = new object[1,1]; rows[0, 0] = 1; rdr.SetRows(rows); AccessController1 access = new AccessController1("secrets", logger, conn); Assert.That( access.CanAccess("dave", "shhh"), Is.True ); logger.Verify(); conn.Verify(); cmd.Verify(); }