public void OpenServiceManagerGetsCorrectConnectionHandle(Fake <IAdvApi32> advApi32, long pointerValue) { advApi32.CallsTo(_ => _.OpenServiceControlManager(A <string> ._, A <string> ._, A <ScmAccess> ._)) .Returns(new IntPtr(pointerValue)); var sut = new ServiceDatabaseConnection(advApi32.FakedObject); var connectionHandle = sut.Open(); var actual = connectionHandle.ServiceManagerHandle; var expected = new IntPtr(pointerValue); Assert.Equal(expected, actual); }
public void ReleaseWriteLockCallsUnderlyingAPI(Fake <IAdvApi32> advApi32, int serviceControlManagerHandlerValue, int serviceDatabaseLockHandleValue) { var sut = new ServiceDatabaseConnection(advApi32.FakedObject); var connectionHandle = new ConnectionHandle { ServiceManagerHandle = new IntPtr(serviceControlManagerHandlerValue), ServiceDatabaseLockHandle = new IntPtr(serviceDatabaseLockHandleValue) }; sut.ReleaseLock(connectionHandle); advApi32.CallsTo(_ => _.ReleaseServiceDatabaseLock(A <IntPtr> ._)).MustHaveHappened(); }
public void CloseServiceManagerResetsConnectionHandleToIntPtrZero(Fake <IAdvApi32> advApi32, int serviceManagerHandleValue) { advApi32.CallsTo(_ => _.CloseServiceControlManager(A <IntPtr> ._)) .Returns(true); var sut = new ServiceDatabaseConnection(advApi32.FakedObject); var connectionHandle = new ConnectionHandle { ServiceManagerHandle = new IntPtr(serviceManagerHandleValue) }; sut.Close(connectionHandle); var actual = connectionHandle.ServiceManagerHandle; var expected = IntPtr.Zero; Assert.Equal(expected, actual); }
public void WriteLockSetsServiceDatabaseLockHandle(Fake <IAdvApi32> advApi32, int serviceControlManagerHandlerValue, int serviceDatabaseLockHandleValue) { advApi32.CallsTo(_ => _.AquireServiceDatabaseLock(A <IntPtr> ._)) .Returns(new IntPtr(serviceDatabaseLockHandleValue)); var sut = new ServiceDatabaseConnection(advApi32.FakedObject); var connectionHandle = new ConnectionHandle { ServiceManagerHandle = new IntPtr(serviceControlManagerHandlerValue) }; sut.WriteLock(connectionHandle); var actual = connectionHandle.ServiceDatabaseLockHandle; var expected = new IntPtr(serviceDatabaseLockHandleValue); Assert.Equal(expected, actual); }
public void AquireWriteLockRequiresConnectionHandle(Fake <IAdvApi32> advApi32) { var sut = new ServiceDatabaseConnection(advApi32.FakedObject); Assert.Throws <ArgumentNullException>(() => sut.WriteLock(null)); }