private GSDLock AcquireDefaultLock(MockPlatform mockPlatform, ITracer mockTracer) { GSDLock gvfsLock = new GSDLock(mockTracer); this.ValidateLockIsFree(gvfsLock); NamedPipeMessages.LockData existingExternalHolder; gvfsLock.TryAcquireLockForExternalRequestor(DefaultLockData, out existingExternalHolder).ShouldBeTrue(); existingExternalHolder.ShouldBeNull(); mockPlatform.ActiveProcesses.Add(DefaultLockData.PID); this.ValidateLockHeld(gvfsLock, DefaultLockData); return(gvfsLock); }
public void TryAcquireLockForExternalRequestor_WhenGSDLock() { Mock <ITracer> mockTracer = new Mock <ITracer>(MockBehavior.Strict); mockTracer.Setup(x => x.RelatedEvent(EventLevel.Verbose, "TryAcquireLockInternal", It.IsAny <EventMetadata>())); mockTracer.Setup(x => x.RelatedEvent(EventLevel.Verbose, "TryAcquireLockExternal", It.IsAny <EventMetadata>())); GSDLock gvfsLock = this.AcquireGSDLock(mockTracer.Object); NamedPipeMessages.LockData existingExternalHolder; gvfsLock.TryAcquireLockForExternalRequestor(DefaultLockData, out existingExternalHolder).ShouldBeFalse(); this.ValidateLockHeldByGSD(gvfsLock); existingExternalHolder.ShouldBeNull(); mockTracer.VerifyAll(); }
public void TryAcquireLockForExternalRequestor_WhenExternalLock() { Mock <ITracer> mockTracer = new Mock <ITracer>(MockBehavior.Strict); mockTracer.Setup(x => x.RelatedEvent(EventLevel.Informational, "TryAcquireLockExternal", It.IsAny <EventMetadata>())); mockTracer.Setup(x => x.RelatedEvent(EventLevel.Verbose, "TryAcquireLockExternal", It.IsAny <EventMetadata>())); MockPlatform mockPlatform = (MockPlatform)GSDPlatform.Instance; GSDLock gvfsLock = this.AcquireDefaultLock(mockPlatform, mockTracer.Object); NamedPipeMessages.LockData newLockData = new NamedPipeMessages.LockData(4321, false, false, "git new", "123"); NamedPipeMessages.LockData existingExternalHolder; gvfsLock.TryAcquireLockForExternalRequestor(newLockData, out existingExternalHolder).ShouldBeFalse(); this.ValidateLockHeld(gvfsLock, DefaultLockData); this.ValidateExistingExternalHolder(DefaultLockData, existingExternalHolder); mockPlatform.ActiveProcesses.Remove(DefaultLockData.PID); mockTracer.VerifyAll(); }
public void TryAcquireLockForExternalRequestor_WhenExternalHolderTerminated() { Mock <ITracer> mockTracer = new Mock <ITracer>(MockBehavior.Strict); mockTracer.Setup(x => x.RelatedEvent(EventLevel.Informational, "TryAcquireLockExternal", It.IsAny <EventMetadata>())); mockTracer.Setup(x => x.RelatedEvent(EventLevel.Informational, "ExternalLockHolderExited", It.IsAny <EventMetadata>(), Keywords.Telemetry)); mockTracer.Setup(x => x.SetGitCommandSessionId(string.Empty)); MockPlatform mockPlatform = (MockPlatform)GSDPlatform.Instance; GSDLock gvfsLock = this.AcquireDefaultLock(mockPlatform, mockTracer.Object); mockPlatform.ActiveProcesses.Remove(DefaultLockData.PID); NamedPipeMessages.LockData newLockData = new NamedPipeMessages.LockData(4321, false, false, "git new", "123"); mockPlatform.ActiveProcesses.Add(newLockData.PID); NamedPipeMessages.LockData existingExternalHolder; gvfsLock.TryAcquireLockForExternalRequestor(newLockData, out existingExternalHolder).ShouldBeTrue(); existingExternalHolder.ShouldBeNull(); this.ValidateLockHeld(gvfsLock, newLockData); mockTracer.VerifyAll(); }