public void IsSingleton_NotSingletonObject_ReturnsFalse() { SingletonTester .IsSingleton(() => new object()) .Should() .BeFalse(); }
public void IsSingleton_PassASingleton_ReturnsTrue() { var isSingleton = SingletonTester.IsSingleton( SingletonTesterData.GetSingletonObject); Assert.That(isSingleton, Is.EqualTo(true)); }
public void IsSingleton_SingletonObject_ReturnsTrue() { SingletonTester .IsSingleton(() => SafeSingleton.Instance) .Should() .BeTrue(); }
public void IsSingleton_PassANonSingleton_ReturnsFalse() { var isSingleton = SingletonTester.IsSingleton( SingletonTesterData.GetNonSingletonObject); Assert.That(isSingleton, Is.EqualTo(false)); }
public void Test() { var obj = new object(); Assert.IsTrue(SingletonTester.IsSingleton(() => obj)); Assert.IsFalse(SingletonTester.IsSingleton(() => new object())); }
public async Task SingletonConcurrenctCloseOpenTests() { var createTcs = new TaskCompletionSource <object>(); var closeTcs = new TaskCompletionSource <object>(); var singleton = new SingletonTester(createTcs.Task, closeTcs.Task); var creating = singleton.GetOrCreateAsync(TimeSpan.FromDays(1000)); var closing = singleton.CloseAsync(); closeTcs.SetResult(new object()); await closing; createTcs.SetResult(new object()); await creating; try { await singleton.GetOrCreateAsync(TimeSpan.FromDays(1000)); Assert.Fail("Singleton should throw an ObjectDisposedException"); } catch (ObjectDisposedException) { } var createdObj = GetInternalProperty <object>(singleton, "Value"); createdObj.Should().BeNull("A closed Singleton shouldn't have a value!"); }
public void IsSingletonTest() { // Arrange // Act var actual = SingletonTester.IsSingleton(() => SingletonDatabase.Instance); // Assert Assert.IsTrue(actual); }
public async Task SingletonConcurrentCloseOpenTests() { var createTcs = new TaskCompletionSource <object>(); var closeTcs = new TaskCompletionSource <object>(); var singleton = new SingletonTester(createTcs.Task, closeTcs.Task); var creating = singleton.GetOrCreateAsync(TimeSpan.FromSeconds(1)); var closing = singleton.CloseAsync(); closeTcs.SetResult(new object()); await closing; createTcs.SetResult(new object()); await creating; await Assert.ThrowsAsync <ObjectDisposedException>(() => singleton.GetOrCreateAsync(TimeSpan.FromSeconds(1))); var createdObj = GetInternalProperty <object>(singleton, "Value"); Assert.Null(createdObj); }
static void Main(string[] args) { Console.WriteLine(SingletonTester.IsSingleton(CreateNonSingletonPerson)); Console.WriteLine(SingletonTester.IsSingleton(CreateSingletonPerson)); }
static void Main(string[] args) { Console.WriteLine(SingletonTester.IsSingleton(() => { return(new List <string>()); })); }