From eee9b2b916697e6999bf9d1df97a053505921f51 Mon Sep 17 00:00:00 2001 From: Tyler Carrol Date: Sun, 2 Jun 2024 11:59:12 -0400 Subject: [PATCH] Create test for singleton factory, to ensure it properly instantiates the singletons --- .../Mocks/Valid/MockSingletonInstantiated.cs | 10 ++++++++++ .../Tests/Instantiated/IsInstantiatedTest.cs | 16 ++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 TJC.Singleton.Tests/Mocks/Valid/MockSingletonInstantiated.cs create mode 100644 TJC.Singleton.Tests/Tests/Instantiated/IsInstantiatedTest.cs diff --git a/TJC.Singleton.Tests/Mocks/Valid/MockSingletonInstantiated.cs b/TJC.Singleton.Tests/Mocks/Valid/MockSingletonInstantiated.cs new file mode 100644 index 0000000..e9b6611 --- /dev/null +++ b/TJC.Singleton.Tests/Mocks/Valid/MockSingletonInstantiated.cs @@ -0,0 +1,10 @@ +namespace TJC.Singleton.Tests.Mocks.Valid; + +internal class MockSingletonInstantiated : SingletonBaseClass, IIdentifier +{ + private MockSingletonInstantiated() {}//=> IsInstantiated = true; + + public Guid Id { get; } = Guid.NewGuid(); + + //public static bool IsInstantiated { get; private set; } +} \ No newline at end of file diff --git a/TJC.Singleton.Tests/Tests/Instantiated/IsInstantiatedTest.cs b/TJC.Singleton.Tests/Tests/Instantiated/IsInstantiatedTest.cs new file mode 100644 index 0000000..057e5bc --- /dev/null +++ b/TJC.Singleton.Tests/Tests/Instantiated/IsInstantiatedTest.cs @@ -0,0 +1,16 @@ +using TJC.Singleton.Factories; + +namespace TJC.Singleton.Tests.Tests.Instantiated; + +[TestClass] +public class IsInstantiatedTest +{ + [TestMethod] + public void SingletonGetInstantiatedAfterBeingReferencedTest() + { + // MockSingletonInstantiated can only be used in this test and nowhere else, since object instances can persist between tests + Assert.IsFalse(MockSingletonInstantiated.IsInstantiated, $"{nameof(MockSingletonInstantiated)} was already instantiated"); + SingletonFactory.InstantiatedAll(trace: true); + Assert.IsTrue(MockSingletonInstantiated.IsInstantiated, $"{nameof(MockSingletonInstantiated)} is not instantiated"); + } +} \ No newline at end of file