From a4db14351453b4a583be259e9ec04dd0ba26c13f Mon Sep 17 00:00:00 2001 From: Ken Tucker Date: Sat, 21 Dec 2024 09:36:10 -0500 Subject: [PATCH 01/10] Refactor SimpleContainer tests and improve code quality Refactored SimpleContainerTests.cs into multiple files for better modularity and readability. Updated SimpleContainer.cs for performance and readability improvements. Added new test files for various aspects of SimpleContainer functionality. Created new service files to support tests. These changes enhance the structure, readability, and maintainability of the codebase. --- .../Services/Component.cs | 9 + .../Services/Dependency1.cs | 11 + .../Services/Dependency2.cs | 4 + .../Services/EnumerableDependency1.cs | 8 + .../Services/EnumerableDependency2.cs | 5 + .../Services/IComponent.cs | 5 + .../Services/IDependency1.cs | 4 + .../Services/IDependency2.cs | 4 + .../Services/IEnumerableDependency.cs | 4 + .../Services/ITestService.cs | 4 + .../Services/NonInterfaceDependency.cs | 4 + .../Services/SecondDependency1.cs | 4 + .../Services/SingleEmptyConstructorType.cs | 10 + .../Services/SingleIntConstructor.cs | 13 + .../Services/SingleNonEmptyConstructorType.cs | 9 + .../Services/TestService.cs | 5 + .../Services/TestServiceWithDependency.cs | 7 + .../Services/TwoConstructors.cs | 18 + .../SimpleContainerCheckingForHandler.cs | 58 +++ .../SimpleContainerCreatingAChildContainer.cs | 51 +++ .../SimpleContainerGettingASingleInstance.cs | 31 ++ .../SimpleContainerRegisteringInstances.cs | 105 ++++++ .../SimpleContainerTests.cs | 355 ------------------ .../SimpleContainer_Find_Constructor.cs | 66 ++++ .../SimpleContainer_Recursive.cs | 111 ++++++ src/Caliburn.Micro.Core/SimpleContainer.cs | 12 +- 26 files changed, 554 insertions(+), 363 deletions(-) create mode 100644 src/Caliburn.Micro.Core.Tests/Services/Component.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/Dependency1.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/Dependency2.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/EnumerableDependency1.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/EnumerableDependency2.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/IComponent.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/IDependency1.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/IDependency2.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/IEnumerableDependency.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/ITestService.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/NonInterfaceDependency.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/SecondDependency1.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/SingleEmptyConstructorType.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/SingleIntConstructor.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/SingleNonEmptyConstructorType.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/TestService.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/TestServiceWithDependency.cs create mode 100644 src/Caliburn.Micro.Core.Tests/Services/TwoConstructors.cs create mode 100644 src/Caliburn.Micro.Core.Tests/SimpleContainerCheckingForHandler.cs create mode 100644 src/Caliburn.Micro.Core.Tests/SimpleContainerCreatingAChildContainer.cs create mode 100644 src/Caliburn.Micro.Core.Tests/SimpleContainerGettingASingleInstance.cs create mode 100644 src/Caliburn.Micro.Core.Tests/SimpleContainerRegisteringInstances.cs delete mode 100644 src/Caliburn.Micro.Core.Tests/SimpleContainerTests.cs create mode 100644 src/Caliburn.Micro.Core.Tests/SimpleContainer_Find_Constructor.cs create mode 100644 src/Caliburn.Micro.Core.Tests/SimpleContainer_Recursive.cs diff --git a/src/Caliburn.Micro.Core.Tests/Services/Component.cs b/src/Caliburn.Micro.Core.Tests/Services/Component.cs new file mode 100644 index 00000000..40559a2e --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/Component.cs @@ -0,0 +1,9 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + internal class Component : IComponent + { + public IDependency1 Dependency1 { get; set; } + public NonInterfaceDependency NonInterfaceDependency { get; set; } + } +} + diff --git a/src/Caliburn.Micro.Core.Tests/Services/Dependency1.cs b/src/Caliburn.Micro.Core.Tests/Services/Dependency1.cs new file mode 100644 index 00000000..4ae406aa --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/Dependency1.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; + +namespace Caliburn.Micro.Core.Tests.Services +{ + internal class Dependency1 : IDependency1 + { + public IDependency2 Dependency2 { get; set; } + public IList EnumerableDependencies { get; set; } + } +} + diff --git a/src/Caliburn.Micro.Core.Tests/Services/Dependency2.cs b/src/Caliburn.Micro.Core.Tests/Services/Dependency2.cs new file mode 100644 index 00000000..b6baee5d --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/Dependency2.cs @@ -0,0 +1,4 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + internal class Dependency2 : IDependency2 { } +} diff --git a/src/Caliburn.Micro.Core.Tests/Services/EnumerableDependency1.cs b/src/Caliburn.Micro.Core.Tests/Services/EnumerableDependency1.cs new file mode 100644 index 00000000..d7fe9fa9 --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/EnumerableDependency1.cs @@ -0,0 +1,8 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + internal class EnumerableDependency1 : IEnumerableDependency + { + public IDependency2 Dependency2 { get; set; } + } +} + diff --git a/src/Caliburn.Micro.Core.Tests/Services/EnumerableDependency2.cs b/src/Caliburn.Micro.Core.Tests/Services/EnumerableDependency2.cs new file mode 100644 index 00000000..da533f1b --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/EnumerableDependency2.cs @@ -0,0 +1,5 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + internal class EnumerableDependency2 : IEnumerableDependency { } + +} diff --git a/src/Caliburn.Micro.Core.Tests/Services/IComponent.cs b/src/Caliburn.Micro.Core.Tests/Services/IComponent.cs new file mode 100644 index 00000000..2c350120 --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/IComponent.cs @@ -0,0 +1,5 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + internal interface IComponent { } + +} diff --git a/src/Caliburn.Micro.Core.Tests/Services/IDependency1.cs b/src/Caliburn.Micro.Core.Tests/Services/IDependency1.cs new file mode 100644 index 00000000..9d492c65 --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/IDependency1.cs @@ -0,0 +1,4 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + internal interface IDependency1 { } +} diff --git a/src/Caliburn.Micro.Core.Tests/Services/IDependency2.cs b/src/Caliburn.Micro.Core.Tests/Services/IDependency2.cs new file mode 100644 index 00000000..87114825 --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/IDependency2.cs @@ -0,0 +1,4 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + internal interface IDependency2 { } +} diff --git a/src/Caliburn.Micro.Core.Tests/Services/IEnumerableDependency.cs b/src/Caliburn.Micro.Core.Tests/Services/IEnumerableDependency.cs new file mode 100644 index 00000000..b15bfc35 --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/IEnumerableDependency.cs @@ -0,0 +1,4 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + internal interface IEnumerableDependency { } +} diff --git a/src/Caliburn.Micro.Core.Tests/Services/ITestService.cs b/src/Caliburn.Micro.Core.Tests/Services/ITestService.cs new file mode 100644 index 00000000..b8742107 --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/ITestService.cs @@ -0,0 +1,4 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + internal interface ITestService { } +} diff --git a/src/Caliburn.Micro.Core.Tests/Services/NonInterfaceDependency.cs b/src/Caliburn.Micro.Core.Tests/Services/NonInterfaceDependency.cs new file mode 100644 index 00000000..91cf6201 --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/NonInterfaceDependency.cs @@ -0,0 +1,4 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + internal class NonInterfaceDependency { } +} diff --git a/src/Caliburn.Micro.Core.Tests/Services/SecondDependency1.cs b/src/Caliburn.Micro.Core.Tests/Services/SecondDependency1.cs new file mode 100644 index 00000000..1edfff56 --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/SecondDependency1.cs @@ -0,0 +1,4 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + internal class SecondDependency1 : Dependency1 { } +} diff --git a/src/Caliburn.Micro.Core.Tests/Services/SingleEmptyConstructorType.cs b/src/Caliburn.Micro.Core.Tests/Services/SingleEmptyConstructorType.cs new file mode 100644 index 00000000..93d5ba2a --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/SingleEmptyConstructorType.cs @@ -0,0 +1,10 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + public class SingleEmptyConstructorType + { + public SingleEmptyConstructorType() + { + + } + } +} diff --git a/src/Caliburn.Micro.Core.Tests/Services/SingleIntConstructor.cs b/src/Caliburn.Micro.Core.Tests/Services/SingleIntConstructor.cs new file mode 100644 index 00000000..22c80b40 --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/SingleIntConstructor.cs @@ -0,0 +1,13 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + public class SingleIntConstructor + { + public int Value { get; private set; } + + public SingleIntConstructor(int x) + { + this.Value = x; + } + } + +} diff --git a/src/Caliburn.Micro.Core.Tests/Services/SingleNonEmptyConstructorType.cs b/src/Caliburn.Micro.Core.Tests/Services/SingleNonEmptyConstructorType.cs new file mode 100644 index 00000000..8547d380 --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/SingleNonEmptyConstructorType.cs @@ -0,0 +1,9 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + public class SingleNonEmptyConstructorType + { + public SingleNonEmptyConstructorType(SingleEmptyConstructorType type) + { + } + } +} diff --git a/src/Caliburn.Micro.Core.Tests/Services/TestService.cs b/src/Caliburn.Micro.Core.Tests/Services/TestService.cs new file mode 100644 index 00000000..ed7893f3 --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/TestService.cs @@ -0,0 +1,5 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + internal class TestService : ITestService { } + internal class AnotherTestService : ITestService { } +} diff --git a/src/Caliburn.Micro.Core.Tests/Services/TestServiceWithDependency.cs b/src/Caliburn.Micro.Core.Tests/Services/TestServiceWithDependency.cs new file mode 100644 index 00000000..ec555395 --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/TestServiceWithDependency.cs @@ -0,0 +1,7 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + internal class TestServiceWithDependency + { + public ITestService Dependency { get; set; } + } +} diff --git a/src/Caliburn.Micro.Core.Tests/Services/TwoConstructors.cs b/src/Caliburn.Micro.Core.Tests/Services/TwoConstructors.cs new file mode 100644 index 00000000..c9992b9e --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/Services/TwoConstructors.cs @@ -0,0 +1,18 @@ +namespace Caliburn.Micro.Core.Tests.Services +{ + public class TwoConstructors + { + public int Value { get; set; } + + public TwoConstructors() + { + Value = 42; + } + + public TwoConstructors(int value) + { + Value = value; + } + } + +} diff --git a/src/Caliburn.Micro.Core.Tests/SimpleContainerCheckingForHandler.cs b/src/Caliburn.Micro.Core.Tests/SimpleContainerCheckingForHandler.cs new file mode 100644 index 00000000..2b07ea2a --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/SimpleContainerCheckingForHandler.cs @@ -0,0 +1,58 @@ +using Caliburn.Micro.Core.Tests.Services; +using Xunit; + +namespace Caliburn.Micro.Core.Tests +{ + public class SimpleContainerCheckingForHandler + { + [Fact] + public void HasHandler_returns_false_when_handler_does_not_exist() + { + Assert.False(new SimpleContainer().HasHandler(typeof(object), null)); + Assert.False(new SimpleContainer().HasHandler(null, "Object")); + } + + [Fact] + public void HasHandler_returns_true_when_handler_exists() + { + var container = new SimpleContainer(); + container.RegisterPerRequest(typeof(object), "Object", typeof(object)); + + Assert.True(container.HasHandler(typeof(object), null)); + Assert.True(container.HasHandler(null, "Object")); + } + + [Fact] + public void GetInstance_ShouldReturnNullIfNoHandler() + { + var container = new SimpleContainer(); + + var resolvedInstance = container.GetInstance(typeof(ITestService), null); + + Assert.Null(resolvedInstance); + } + + [Fact] + public void HasHandler_ShouldReturnTrueIfHandlerExists() + { + var container = new SimpleContainer(); + var instance = new TestService(); + + container.RegisterInstance(typeof(ITestService), null, instance); + + var hasHandler = container.HasHandler(typeof(ITestService), null); + + Assert.True(hasHandler); + } + + [Fact] + public void HasHandler_ShouldReturnFalseIfHandlerDoesNotExist() + { + var container = new SimpleContainer(); + + var hasHandler = container.HasHandler(typeof(ITestService), null); + + Assert.False(hasHandler); + } + } +} diff --git a/src/Caliburn.Micro.Core.Tests/SimpleContainerCreatingAChildContainer.cs b/src/Caliburn.Micro.Core.Tests/SimpleContainerCreatingAChildContainer.cs new file mode 100644 index 00000000..df809083 --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/SimpleContainerCreatingAChildContainer.cs @@ -0,0 +1,51 @@ +using Xunit; + +namespace Caliburn.Micro.Core.Tests +{ + public class SimpleContainerCreatingAChildContainer + { + [Fact] + public void Singleton_instances_are_the_same_across_parent_and_child() + { + var container = new SimpleContainer(); + container.Singleton(); + var childContainer = container.CreateChildContainer(); + + var parentInstance = container.GetInstance(typeof(object), null); + var childInstance = childContainer.GetInstance(typeof(object), null); + + Assert.Same(parentInstance, childInstance); + } + + [Fact] + public void The_child_container_returned_contains_parent_entries() + { + var container = new SimpleContainer(); + container.PerRequest(); + var childContainer = container.CreateChildContainer(); + + Assert.NotNull(childContainer.GetInstance(typeof(object), null)); + } + + [Fact] + public void The_child_container_returned_is_not_the_same_instance_as_its_parent() + { + var container = new SimpleContainer(); + var childContainer = container.CreateChildContainer(); + + Assert.NotSame(container, childContainer); + } + + + + [Fact] + public void CreateChildContainer_ShouldCreateChildContainer() + { + var container = new SimpleContainer(); + var childContainer = container.CreateChildContainer(); + + Assert.NotNull(childContainer); + Assert.NotEqual(container, childContainer); + } + } +} diff --git a/src/Caliburn.Micro.Core.Tests/SimpleContainerGettingASingleInstance.cs b/src/Caliburn.Micro.Core.Tests/SimpleContainerGettingASingleInstance.cs new file mode 100644 index 00000000..43963821 --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/SimpleContainerGettingASingleInstance.cs @@ -0,0 +1,31 @@ +using Xunit; + +namespace Caliburn.Micro.Core.Tests +{ + public class SimpleContainerGettingASingleInstance + { + [Fact] + public void An_instance_is_returned_for_the_type_specified_if_found() + { + var container = new SimpleContainer(); + container.PerRequest(); + + Assert.NotNull(container.GetInstance(typeof(object), null)); + } + + [Fact] + public void Instances_can_be_found_by_name_only() + { + var container = new SimpleContainer(); + container.RegisterPerRequest(typeof(object), "AnObject", typeof(object)); + + Assert.NotNull(container.GetInstance(null, "AnObject")); + } + + [Fact] + public void Null_is_returned_when_no_instance_is_found() + { + Assert.Null(new SimpleContainer().GetInstance(typeof(object), null)); + } + } +} diff --git a/src/Caliburn.Micro.Core.Tests/SimpleContainerRegisteringInstances.cs b/src/Caliburn.Micro.Core.Tests/SimpleContainerRegisteringInstances.cs new file mode 100644 index 00000000..c17ba4a6 --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/SimpleContainerRegisteringInstances.cs @@ -0,0 +1,105 @@ +using System.Linq; +using Caliburn.Micro.Core.Tests.Services; +using Xunit; + +namespace Caliburn.Micro.Core.Tests +{ + public class SimpleContainerRegisteringInstances + { + [Fact] + public void RegisterInstance_ShouldRegisterInstance() + { + var container = new SimpleContainer(); + var instance = new TestService(); + + container.RegisterInstance(typeof(ITestService), null, instance); + + var resolvedInstance = container.GetInstance(typeof(ITestService), null); + + Assert.NotNull(resolvedInstance); + Assert.Equal(instance, resolvedInstance); + } + + [Fact] + public void RegisterPerRequest_ShouldRegisterPerRequest() + { + var container = new SimpleContainer(); + + container.RegisterPerRequest(typeof(ITestService), null, typeof(TestService)); + + var instance1 = container.GetInstance(typeof(ITestService), null); + var instance2 = container.GetInstance(typeof(ITestService), null); + + Assert.NotNull(instance1); + Assert.NotNull(instance2); + Assert.NotEqual(instance1, instance2); + } + + [Fact] + public void RegisterSingleton_ShouldRegisterSingleton() + { + var container = new SimpleContainer(); + + container.RegisterSingleton(typeof(ITestService), null, typeof(TestService)); + + var instance1 = container.GetInstance(typeof(ITestService), null); + var instance2 = container.GetInstance(typeof(ITestService), null); + + Assert.NotNull(instance1); + Assert.NotNull(instance2); + Assert.Equal(instance1, instance2); + } + + [Fact] + public void Instances_registed_Singleton_return_the_same_instance_for_each_call() + { + var container = new SimpleContainer(); + container.Singleton(); + + var instanceA = container.GetInstance(typeof(object), null); + var instanceB = container.GetInstance(typeof(object), null); + + Assert.Same(instanceA, instanceB); + } + + [Fact] + public void Instances_registered_PerRequest_returns_a_different_instance_for_each_call() + { + var container = new SimpleContainer(); + container.PerRequest(); + + var instanceA = container.GetInstance(typeof(object), null); + var instanceB = container.GetInstance(typeof(object), null); + + Assert.NotSame(instanceA, instanceB); + } + + [Fact] + public void Instances_registered_with_different_keys_get_all_instances_return_all() + { + var container = new SimpleContainer(); + container.RegisterInstance(typeof(object), "test", new object()); + container.RegisterInstance(typeof(object), "test", new object()); + + var results = container.GetAllInstances("test"); + + Assert.Equal(2, results.Count()); + } + + + [Fact] + public void UnregisterHandler_ShouldUnregisterHandler() + { + var container = new SimpleContainer(); + var instance = new TestService(); + + container.RegisterInstance(typeof(ITestService), null, instance); + container.UnregisterHandler(typeof(ITestService), null); + + var resolvedInstance = container.GetInstance(typeof(ITestService), null); + + Assert.Null(resolvedInstance); + } + + } +} diff --git a/src/Caliburn.Micro.Core.Tests/SimpleContainerTests.cs b/src/Caliburn.Micro.Core.Tests/SimpleContainerTests.cs deleted file mode 100644 index e6c1381a..00000000 --- a/src/Caliburn.Micro.Core.Tests/SimpleContainerTests.cs +++ /dev/null @@ -1,355 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Xunit; - -namespace Caliburn.Micro.Core.Tests -{ - public class SimpleContainerCreatingAChildContainer - { - [Fact] - public void Singleton_instances_are_the_same_across_parent_and_child() - { - var container = new SimpleContainer(); - container.Singleton(); - var childContainer = container.CreateChildContainer(); - - var parentInstance = container.GetInstance(typeof(object), null); - var childInstance = childContainer.GetInstance(typeof(object), null); - - Assert.Same(parentInstance, childInstance); - } - - [Fact] - public void The_child_container_returned_contains_parent_entries() - { - var container = new SimpleContainer(); - container.PerRequest(); - var childContainer = container.CreateChildContainer(); - - Assert.NotNull(childContainer.GetInstance(typeof(object), null)); - } - - [Fact] - public void The_child_container_returned_is_not_the_same_instance_as_its_parent() - { - var container = new SimpleContainer(); - var childContainer = container.CreateChildContainer(); - - Assert.NotSame(container, childContainer); - } - } - - public class SimpleContainerCheckingForHandler - { - [Fact] - public void HasHandler_returns_false_when_handler_does_not_exist() - { - Assert.False(new SimpleContainer().HasHandler(typeof(object), null)); - Assert.False(new SimpleContainer().HasHandler(null, "Object")); - } - - [Fact] - public void HasHandler_returns_true_when_handler_exists() - { - var container = new SimpleContainer(); - container.RegisterPerRequest(typeof(object), "Object", typeof(object)); - - Assert.True(container.HasHandler(typeof(object), null)); - Assert.True(container.HasHandler(null, "Object")); - } - } - - public class SimpleContainerGettingASingleInstance - { - [Fact] - public void An_instance_is_returned_for_the_type_specified_if_found() - { - var container = new SimpleContainer(); - container.PerRequest(); - - Assert.NotNull(container.GetInstance(typeof(object), null)); - } - - [Fact] - public void Instances_can_be_found_by_name_only() - { - var container = new SimpleContainer(); - container.RegisterPerRequest(typeof(object), "AnObject", typeof(object)); - - Assert.NotNull(container.GetInstance(null, "AnObject")); - } - - [Fact] - public void Null_is_returned_when_no_instance_is_found() - { - Assert.Null(new SimpleContainer().GetInstance(typeof(object), null)); - } - } - - public class SimpleContainerRegisteringInstances - { - [Fact] - public void Instances_registed_Singleton_return_the_same_instance_for_each_call() - { - var container = new SimpleContainer(); - container.Singleton(); - - var instanceA = container.GetInstance(typeof(object), null); - var instanceB = container.GetInstance(typeof(object), null); - - Assert.Same(instanceA, instanceB); - } - - [Fact] - public void Instances_registered_PerRequest_returns_a_different_instance_for_each_call() - { - var container = new SimpleContainer(); - container.PerRequest(); - - var instanceA = container.GetInstance(typeof(object), null); - var instanceB = container.GetInstance(typeof(object), null); - - Assert.NotSame(instanceA, instanceB); - } - - [Fact] - public void Instances_registered_with_different_keys_get_all_instances_return_all() - { - var container = new SimpleContainer(); - container.RegisterInstance(typeof(object), "test", new object()); - container.RegisterInstance(typeof(object), "test", new object()); - - var results = container.GetAllInstances("test"); - - Assert.Equal(2, results.Count()); - } - } - - public class SimpleContainer_Find_Constructor - { - - public class SingleEmptyConstructorType - { - public SingleEmptyConstructorType() - { - - } - } - - [Fact] - public void Container_Finds_Single_Constructor() - { - var container = new SimpleContainer(); - container.Singleton(); - container.GetInstance(typeof(SingleEmptyConstructorType), null); - } - - public class SingleNonEmptyConstructorType - { - public SingleNonEmptyConstructorType(SimpleContainer_Find_Constructor.SingleEmptyConstructorType type) - { - } - } - - [Fact] - public void Container_No_EmptyConstructor() - { - var container = new SimpleContainer(); - container.Singleton(); - container.GetInstance(typeof(SingleNonEmptyConstructorType), null); - } - - public class SingleIntConstructor - { - public int Value { get; private set; } - - public SingleIntConstructor(int x) - { - this.Value = x; - } - } - - [Fact] - public void Container_SingleIntConstructor() - { - var container = new SimpleContainer(); - container.Singleton(); - container.RegisterInstance(typeof(int), "x", 4); - var inst = (SingleIntConstructor)container.GetInstance(typeof(SingleIntConstructor), null); - Assert.Equal(4, inst.Value); - } - - public class TwoConstructors - { - public int Value { get; set; } - - public TwoConstructors() - { - this.Value = 42; - } - - public TwoConstructors(int value) - { - Value = value; - } - } - - [Fact] - public void Container_ChooseConstructorWithRegisteredParameter() - { - var container = new SimpleContainer(); - container.Singleton(); - container.RegisterInstance(typeof(int), null, 23); - var inst = (TwoConstructors)container.GetInstance(typeof(TwoConstructors), null); - Assert.Equal(23, inst.Value); - } - - [Fact] - public void Container_ChooseEmptyConstructorWithoutRegisteredParameter() - { - var container = new SimpleContainer(); - container.Singleton(); - var inst = (TwoConstructors)container.GetInstance(typeof(TwoConstructors), null); - Assert.Equal(42, inst.Value); - } - } - - public class SimpleContainer_Recursive - { - private interface IComponent { } - private interface IDependency1 { } - private interface IDependency2 { } - private interface IEnumerableDependency { } - - private class Component : IComponent - { - public IDependency1 Dependency1 { get; set; } - public NonInterfaceDependency NonInterfaceDependency { get; set; } - } - - private class Dependency1 : IDependency1 - { - public IDependency2 Dependency2 { get; set; } - public IList EnumerableDependencies { get; set; } - } - - private class Dependency2 : IDependency2 { } - - private class EnumerableDependency1 : IEnumerableDependency - { - public IDependency2 Dependency2 { get; set; } - } - - private class EnumerableDependency2 : IEnumerableDependency { } - - private class NonInterfaceDependency { } - - private class SecondDependency1 : Dependency1 { } - - private static void RegisterAllComponents(SimpleContainer container) - { - container.RegisterPerRequest(typeof(IComponent), null, typeof(Component)); - container.RegisterPerRequest(typeof(IDependency1), null, typeof(Dependency1)); - container.RegisterPerRequest(typeof(IDependency2), null, typeof(Dependency2)); - container.RegisterPerRequest(typeof(NonInterfaceDependency), null, typeof(NonInterfaceDependency)); - container.RegisterPerRequest(typeof(IEnumerableDependency), null, typeof(EnumerableDependency1)); - container.RegisterPerRequest(typeof(IEnumerableDependency), null, typeof(EnumerableDependency2)); - } - - [Fact] - public void Instances_Are_Recursively_Property_Injected_When_Enabled() - { - var container = new SimpleContainer - { - EnablePropertyInjection = true - }; - - RegisterAllComponents(container); - - var instance = (Component)container.GetInstance(); - - Assert.NotNull(((Dependency1)instance.Dependency1).Dependency2); - } - - [Fact] - public void BuildUp_Injects_All_Registered_Dependencies_Non_Recursively() - { - var container = new SimpleContainer(); - RegisterAllComponents(container); - - var instance = (Component)container.GetInstance(); - container.BuildUp(instance); - - Assert.Null(((Dependency1)instance.Dependency1).Dependency2); - } - - [Fact] - public void BuildUp_Injects_Dependencies_Recursively() - { - var container = new SimpleContainer - { - EnablePropertyInjection = true - }; - - RegisterAllComponents(container); - - var instance = (Component)container.GetInstance(); - container.BuildUp(instance); - - Assert.NotNull(((Dependency1)instance.Dependency1).Dependency2); - } - - [Fact] - public void BuildUp_Injects_Enumerable_Dependencies() - { - var container = new SimpleContainer - { - EnablePropertyInjection = true - }; - - RegisterAllComponents(container); - - var instance = (Component)container.GetInstance(); - container.BuildUp(instance); - - Assert.Equal(2, (((Dependency1)instance.Dependency1).EnumerableDependencies.Count)); - } - - [Fact] - public void BuildUp_Injects_Properties_Of_Enumerable_Dependencies() - { - var container = new SimpleContainer - { - EnablePropertyInjection = true - }; - - RegisterAllComponents(container); - - var instance = (Component)container.GetInstance(); - container.BuildUp(instance); - - Assert.NotNull(((EnumerableDependency1)(((Dependency1)instance.Dependency1).EnumerableDependencies.First())).Dependency2); - } - - [Fact] - public void BuildUp_Throws_When_Multiple_Types_Found_For_Component() - { - var container = new SimpleContainer(); - RegisterAllComponents(container); - container.RegisterPerRequest(typeof(IDependency1), null, typeof(SecondDependency1)); - - var instance = (Component)container.GetInstance(); - - try - { - container.BuildUp(instance); - } - catch - { - return; - } - - Assert.NotNull(null); - } - } -} diff --git a/src/Caliburn.Micro.Core.Tests/SimpleContainer_Find_Constructor.cs b/src/Caliburn.Micro.Core.Tests/SimpleContainer_Find_Constructor.cs new file mode 100644 index 00000000..9ba8020b --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/SimpleContainer_Find_Constructor.cs @@ -0,0 +1,66 @@ +using Caliburn.Micro.Core.Tests.Services; +using Xunit; +namespace Caliburn.Micro.Core.Tests +{ + public partial class SimpleContainer_Find_Constructor + { + + [Fact] + public void Container_Finds_Single_Constructor() + { + var container = new SimpleContainer(); + container.Singleton(); + container.GetInstance(typeof(SingleEmptyConstructorType), null); + } + + [Fact] + public void Container_No_EmptyConstructor() + { + var container = new SimpleContainer(); + container.Singleton(); + container.GetInstance(typeof(SingleNonEmptyConstructorType), null); + } + + [Fact] + public void Container_SingleIntConstructor() + { + var container = new SimpleContainer(); + container.Singleton(); + container.RegisterInstance(typeof(int), "x", 4); + var inst = (SingleIntConstructor)container.GetInstance(typeof(SingleIntConstructor), null); + Assert.Equal(4, inst.Value); + } + + [Fact] + public void Container_ChooseConstructorWithRegisteredParameter() + { + var container = new SimpleContainer(); + container.Singleton(); + container.RegisterInstance(typeof(int), null, 23); + var inst = (TwoConstructors)container.GetInstance(typeof(TwoConstructors), null); + Assert.Equal(23, inst.Value); + } + + [Fact] + public void Container_ChooseEmptyConstructorWithoutRegisteredParameter() + { + var container = new SimpleContainer(); + container.Singleton(); + var inst = (TwoConstructors)container.GetInstance(typeof(TwoConstructors), null); + Assert.Equal(42, inst.Value); + } + + [Fact] + public void BuildUp_ShouldInjectProperties() + { + var container = new SimpleContainer(); + var instance = new TestServiceWithDependency(); + + container.RegisterInstance(typeof(ITestService), null, new TestService()); + + container.BuildUp(instance); + + Assert.NotNull(instance.Dependency); + } + } +} diff --git a/src/Caliburn.Micro.Core.Tests/SimpleContainer_Recursive.cs b/src/Caliburn.Micro.Core.Tests/SimpleContainer_Recursive.cs new file mode 100644 index 00000000..9bd37a12 --- /dev/null +++ b/src/Caliburn.Micro.Core.Tests/SimpleContainer_Recursive.cs @@ -0,0 +1,111 @@ +using System; +using System.Linq; +using Caliburn.Micro.Core.Tests.Services; +using Xunit; + +namespace Caliburn.Micro.Core.Tests +{ + public partial class SimpleContainer_Recursive + { + + private static void RegisterAllComponents(SimpleContainer container) + { + container.RegisterPerRequest(typeof(IComponent), null, typeof(Component)); + container.RegisterPerRequest(typeof(IDependency1), null, typeof(Dependency1)); + container.RegisterPerRequest(typeof(IDependency2), null, typeof(Dependency2)); + container.RegisterPerRequest(typeof(NonInterfaceDependency), null, typeof(NonInterfaceDependency)); + container.RegisterPerRequest(typeof(IEnumerableDependency), null, typeof(EnumerableDependency1)); + container.RegisterPerRequest(typeof(IEnumerableDependency), null, typeof(EnumerableDependency2)); + } + + [Fact] + public void Instances_Are_Recursively_Property_Injected_When_Enabled() + { + var container = new SimpleContainer + { + EnablePropertyInjection = true + }; + + RegisterAllComponents(container); + + var instance = (Component)container.GetInstance(); + + Assert.NotNull(((Dependency1)instance.Dependency1).Dependency2); + } + + [Fact] + public void BuildUp_Injects_All_Registered_Dependencies_Non_Recursively() + { + var container = new SimpleContainer(); + RegisterAllComponents(container); + + var instance = (Component)container.GetInstance(); + container.BuildUp(instance); + + Assert.Null(((Dependency1)instance.Dependency1).Dependency2); + } + + [Fact] + public void BuildUp_Injects_Dependencies_Recursively() + { + var container = new SimpleContainer + { + EnablePropertyInjection = true + }; + + RegisterAllComponents(container); + + var instance = (Component)container.GetInstance(); + container.BuildUp(instance); + + Assert.NotNull(((Dependency1)instance.Dependency1).Dependency2); + } + + [Fact] + public void BuildUp_Injects_Enumerable_Dependencies() + { + var container = new SimpleContainer + { + EnablePropertyInjection = true + }; + + RegisterAllComponents(container); + + var instance = (Component)container.GetInstance(); + container.BuildUp(instance); + + Assert.Equal(2, ((Dependency1)instance.Dependency1).EnumerableDependencies.Count); + } + + [Fact] + public void BuildUp_Injects_Properties_Of_Enumerable_Dependencies() + { + var container = new SimpleContainer + { + EnablePropertyInjection = true + }; + + RegisterAllComponents(container); + + var instance = (Component)container.GetInstance(); + container.BuildUp(instance); + + Assert.NotNull(((EnumerableDependency1)((Dependency1)instance.Dependency1).EnumerableDependencies.First()).Dependency2); + } + + [Fact] + public void BuildUp_Throws_When_Multiple_Types_Found_For_Component() + { + var container = new SimpleContainer(); + RegisterAllComponents(container); + container.RegisterPerRequest(typeof(IDependency1), null, typeof(SecondDependency1)); + + var instance = (Component)container.GetInstance(); + + + Assert.Throws(() => container.BuildUp(instance)); + + } + + } +} diff --git a/src/Caliburn.Micro.Core/SimpleContainer.cs b/src/Caliburn.Micro.Core/SimpleContainer.cs index 651e767c..94b43de3 100644 --- a/src/Caliburn.Micro.Core/SimpleContainer.cs +++ b/src/Caliburn.Micro.Core/SimpleContainer.cs @@ -176,17 +176,13 @@ public IEnumerable GetAllInstances(Type service, string key = null) if (currentEntry == null) { - return new object[0]; + return Enumerable.Empty(); } var instances = currentEntry.Select(e => e(this)); - - foreach (var instance in instances) + foreach (var instance in instances.Where(instance => EnablePropertyInjection && instance != null)) { - if (EnablePropertyInjection && instance != null) - { - BuildUp(instance); - } + BuildUp(instance); } return instances; @@ -242,7 +238,7 @@ private ContainerEntry GetEntry(Type service, string key) return entries.FirstOrDefault(x => x.Key == key); } - if (key == null) + if (string.IsNullOrEmpty(key)) { return entries.FirstOrDefault(x => x.Service == service && string.IsNullOrEmpty(x.Key)) ?? entries.FirstOrDefault(x => x.Service == service); From 12518e1e31e6d00c60ac6bf7cd839d81563affcf Mon Sep 17 00:00:00 2001 From: Ken Tucker Date: Sun, 22 Dec 2024 21:57:33 -0500 Subject: [PATCH 02/10] Refactor test method names for consistency Renamed test methods in SimpleContainerCheckingForHandler.cs to follow a consistent naming convention. Removed underscores and converted names to camel case. --- .../SimpleContainerCheckingForHandler.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Caliburn.Micro.Core.Tests/SimpleContainerCheckingForHandler.cs b/src/Caliburn.Micro.Core.Tests/SimpleContainerCheckingForHandler.cs index 2b07ea2a..ae73f869 100644 --- a/src/Caliburn.Micro.Core.Tests/SimpleContainerCheckingForHandler.cs +++ b/src/Caliburn.Micro.Core.Tests/SimpleContainerCheckingForHandler.cs @@ -6,14 +6,14 @@ namespace Caliburn.Micro.Core.Tests public class SimpleContainerCheckingForHandler { [Fact] - public void HasHandler_returns_false_when_handler_does_not_exist() + public void HasHandlerReturnsRalseWhenHandlerDoesNotExist() { Assert.False(new SimpleContainer().HasHandler(typeof(object), null)); Assert.False(new SimpleContainer().HasHandler(null, "Object")); } [Fact] - public void HasHandler_returns_true_when_handler_exists() + public void HasHandlerReturnsTrueWhenHandlerExists() { var container = new SimpleContainer(); container.RegisterPerRequest(typeof(object), "Object", typeof(object)); @@ -23,7 +23,7 @@ public void HasHandler_returns_true_when_handler_exists() } [Fact] - public void GetInstance_ShouldReturnNullIfNoHandler() + public void GetInstanceShouldReturnNullIfNoHandler() { var container = new SimpleContainer(); @@ -33,7 +33,7 @@ public void GetInstance_ShouldReturnNullIfNoHandler() } [Fact] - public void HasHandler_ShouldReturnTrueIfHandlerExists() + public void HasHandlerShouldReturnTrueIfHandlerExists() { var container = new SimpleContainer(); var instance = new TestService(); @@ -46,7 +46,7 @@ public void HasHandler_ShouldReturnTrueIfHandlerExists() } [Fact] - public void HasHandler_ShouldReturnFalseIfHandlerDoesNotExist() + public void HasHandlerShouldReturnFalseIfHandlerDoesNotExist() { var container = new SimpleContainer(); From f0ff7041d01c9999a8281793c7ea51f947a77ddd Mon Sep 17 00:00:00 2001 From: Ken Tucker Date: Sun, 22 Dec 2024 22:10:39 -0500 Subject: [PATCH 03/10] fix typo --- .../SimpleContainerCheckingForHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Caliburn.Micro.Core.Tests/SimpleContainerCheckingForHandler.cs b/src/Caliburn.Micro.Core.Tests/SimpleContainerCheckingForHandler.cs index ae73f869..e6a9f991 100644 --- a/src/Caliburn.Micro.Core.Tests/SimpleContainerCheckingForHandler.cs +++ b/src/Caliburn.Micro.Core.Tests/SimpleContainerCheckingForHandler.cs @@ -6,7 +6,7 @@ namespace Caliburn.Micro.Core.Tests public class SimpleContainerCheckingForHandler { [Fact] - public void HasHandlerReturnsRalseWhenHandlerDoesNotExist() + public void HasHandlerReturnsFalseWhenHandlerDoesNotExist() { Assert.False(new SimpleContainer().HasHandler(typeof(object), null)); Assert.False(new SimpleContainer().HasHandler(null, "Object")); From 4f4cda37ac2b59b425202e6256c6c655119a65da Mon Sep 17 00:00:00 2001 From: Ken Tucker Date: Mon, 23 Dec 2024 12:09:49 -0500 Subject: [PATCH 04/10] Update SimpleContainerRegisteringInstances.cs --- .../SimpleContainerRegisteringInstances.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Caliburn.Micro.Core.Tests/SimpleContainerRegisteringInstances.cs b/src/Caliburn.Micro.Core.Tests/SimpleContainerRegisteringInstances.cs index c17ba4a6..5a1845c1 100644 --- a/src/Caliburn.Micro.Core.Tests/SimpleContainerRegisteringInstances.cs +++ b/src/Caliburn.Micro.Core.Tests/SimpleContainerRegisteringInstances.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using Caliburn.Micro.Core.Tests.Services; using Xunit; @@ -7,7 +7,7 @@ namespace Caliburn.Micro.Core.Tests public class SimpleContainerRegisteringInstances { [Fact] - public void RegisterInstance_ShouldRegisterInstance() + public void RegisterInstanceShouldRegisterInstance() { var container = new SimpleContainer(); var instance = new TestService(); @@ -21,7 +21,7 @@ public void RegisterInstance_ShouldRegisterInstance() } [Fact] - public void RegisterPerRequest_ShouldRegisterPerRequest() + public void RegisterPerRequestShouldRegisterPerRequest() { var container = new SimpleContainer(); @@ -36,7 +36,7 @@ public void RegisterPerRequest_ShouldRegisterPerRequest() } [Fact] - public void RegisterSingleton_ShouldRegisterSingleton() + public void RegisterSingletonShouldRegisterSingleton() { var container = new SimpleContainer(); @@ -88,7 +88,7 @@ public void Instances_registered_with_different_keys_get_all_instances_return_al [Fact] - public void UnregisterHandler_ShouldUnregisterHandler() + public void UnregisterHandlerShouldUnregisterHandler() { var container = new SimpleContainer(); var instance = new TestService(); From 23c06569d23c773b1b90889cb9c22b6acb974899 Mon Sep 17 00:00:00 2001 From: Ken Tucker Date: Mon, 23 Dec 2024 12:37:07 -0500 Subject: [PATCH 05/10] Update Caliburn.Micro.Platform.Core.csproj --- .../Caliburn.Micro.Platform.Core.csproj | 24 +------------------ 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/src/Caliburn.Micro.Platform.Core/Caliburn.Micro.Platform.Core.csproj b/src/Caliburn.Micro.Platform.Core/Caliburn.Micro.Platform.Core.csproj index d34efecf..6c75d808 100644 --- a/src/Caliburn.Micro.Platform.Core/Caliburn.Micro.Platform.Core.csproj +++ b/src/Caliburn.Micro.Platform.Core/Caliburn.Micro.Platform.Core.csproj @@ -1,4 +1,4 @@ - + netstandard2.0; @@ -6,34 +6,12 @@ Caliburn.Micro .\..\Caliburn.Micro.snk true - Caliburn Micro Platform Core - CaliburnIcon.png - - - True - \ - - - - - - - - - - True - \ - - - - - From 9b49e30c27893666d9a4d82699e421ddcdba9ed6 Mon Sep 17 00:00:00 2001 From: Ken Tucker Date: Mon, 23 Dec 2024 13:13:31 -0500 Subject: [PATCH 06/10] Update Caliburn.Micro.Platform.Core.csproj --- .../Caliburn.Micro.Platform.Core.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Caliburn.Micro.Platform.Core/Caliburn.Micro.Platform.Core.csproj b/src/Caliburn.Micro.Platform.Core/Caliburn.Micro.Platform.Core.csproj index 6c75d808..1f53861f 100644 --- a/src/Caliburn.Micro.Platform.Core/Caliburn.Micro.Platform.Core.csproj +++ b/src/Caliburn.Micro.Platform.Core/Caliburn.Micro.Platform.Core.csproj @@ -13,7 +13,6 @@ - From 8130ee798337b64801b069caf1e8b02bbe6428f3 Mon Sep 17 00:00:00 2001 From: Ken Tucker Date: Mon, 23 Dec 2024 13:23:55 -0500 Subject: [PATCH 07/10] Update dependabot.yml --- .github/dependabot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 8ca517d6..a3934b2a 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,6 +6,6 @@ version: 2 updates: - package-ecosystem: "nuget" # See documentation for possible values - directory: "/" # Location of package manifests + directory: "/src" # Location of package manifests schedule: interval: "weekly" From fe17adc42a91ca6755e12c47c851f7198f425d86 Mon Sep 17 00:00:00 2001 From: Ken Tucker Date: Mon, 23 Dec 2024 14:01:42 -0500 Subject: [PATCH 08/10] Update Caliburn.Micro.Platform.Core.csproj --- .../Caliburn.Micro.Platform.Core.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Caliburn.Micro.Platform.Core/Caliburn.Micro.Platform.Core.csproj b/src/Caliburn.Micro.Platform.Core/Caliburn.Micro.Platform.Core.csproj index 1f53861f..fad5c7ca 100644 --- a/src/Caliburn.Micro.Platform.Core/Caliburn.Micro.Platform.Core.csproj +++ b/src/Caliburn.Micro.Platform.Core/Caliburn.Micro.Platform.Core.csproj @@ -6,6 +6,7 @@ Caliburn.Micro .\..\Caliburn.Micro.snk true + false From 27ed2a18a86b6982ae314e2eb66d369554eb381e Mon Sep 17 00:00:00 2001 From: Ken Tucker Date: Tue, 24 Dec 2024 14:11:44 +0000 Subject: [PATCH 09/10] update test names --- .../SimpleContainerCreatingAChildContainer.cs | 8 ++++---- .../SimpleContainerGettingASingleInstance.cs | 6 +++--- .../SimpleContainerRegisteringInstances.cs | 6 +++--- .../SimpleContainer_Find_Constructor.cs | 12 ++++++------ .../SimpleContainer_Recursive.cs | 12 ++++++------ 5 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/Caliburn.Micro.Core.Tests/SimpleContainerCreatingAChildContainer.cs b/src/Caliburn.Micro.Core.Tests/SimpleContainerCreatingAChildContainer.cs index df809083..c70413b7 100644 --- a/src/Caliburn.Micro.Core.Tests/SimpleContainerCreatingAChildContainer.cs +++ b/src/Caliburn.Micro.Core.Tests/SimpleContainerCreatingAChildContainer.cs @@ -5,7 +5,7 @@ namespace Caliburn.Micro.Core.Tests public class SimpleContainerCreatingAChildContainer { [Fact] - public void Singleton_instances_are_the_same_across_parent_and_child() + public void SingletonInstancesAreTheSameAcrossParentAndChild() { var container = new SimpleContainer(); container.Singleton(); @@ -18,7 +18,7 @@ public void Singleton_instances_are_the_same_across_parent_and_child() } [Fact] - public void The_child_container_returned_contains_parent_entries() + public void TheChildContainerReturnedContainsParentEntries() { var container = new SimpleContainer(); container.PerRequest(); @@ -28,7 +28,7 @@ public void The_child_container_returned_contains_parent_entries() } [Fact] - public void The_child_container_returned_is_not_the_same_instance_as_its_parent() + public void TheChildContainerReturnedIsNotTheSameInstanceAsItsParent() { var container = new SimpleContainer(); var childContainer = container.CreateChildContainer(); @@ -39,7 +39,7 @@ public void The_child_container_returned_is_not_the_same_instance_as_its_parent( [Fact] - public void CreateChildContainer_ShouldCreateChildContainer() + public void CreateChildContainerShouldCreateChildContainer() { var container = new SimpleContainer(); var childContainer = container.CreateChildContainer(); diff --git a/src/Caliburn.Micro.Core.Tests/SimpleContainerGettingASingleInstance.cs b/src/Caliburn.Micro.Core.Tests/SimpleContainerGettingASingleInstance.cs index 43963821..1ec3db80 100644 --- a/src/Caliburn.Micro.Core.Tests/SimpleContainerGettingASingleInstance.cs +++ b/src/Caliburn.Micro.Core.Tests/SimpleContainerGettingASingleInstance.cs @@ -5,7 +5,7 @@ namespace Caliburn.Micro.Core.Tests public class SimpleContainerGettingASingleInstance { [Fact] - public void An_instance_is_returned_for_the_type_specified_if_found() + public void AnInstanceIsReturnedForTheTypeSpecifiedIfFound() { var container = new SimpleContainer(); container.PerRequest(); @@ -14,7 +14,7 @@ public void An_instance_is_returned_for_the_type_specified_if_found() } [Fact] - public void Instances_can_be_found_by_name_only() + public void InstancesCanBeFoundByNameOnly() { var container = new SimpleContainer(); container.RegisterPerRequest(typeof(object), "AnObject", typeof(object)); @@ -23,7 +23,7 @@ public void Instances_can_be_found_by_name_only() } [Fact] - public void Null_is_returned_when_no_instance_is_found() + public void NullIsReturnedWhenNoInstanceIsFound() { Assert.Null(new SimpleContainer().GetInstance(typeof(object), null)); } diff --git a/src/Caliburn.Micro.Core.Tests/SimpleContainerRegisteringInstances.cs b/src/Caliburn.Micro.Core.Tests/SimpleContainerRegisteringInstances.cs index 5a1845c1..0c1d39bf 100644 --- a/src/Caliburn.Micro.Core.Tests/SimpleContainerRegisteringInstances.cs +++ b/src/Caliburn.Micro.Core.Tests/SimpleContainerRegisteringInstances.cs @@ -51,7 +51,7 @@ public void RegisterSingletonShouldRegisterSingleton() } [Fact] - public void Instances_registed_Singleton_return_the_same_instance_for_each_call() + public void InstancesRegistedSingletonReturnTheSameInstanceForEachCall() { var container = new SimpleContainer(); container.Singleton(); @@ -63,7 +63,7 @@ public void Instances_registed_Singleton_return_the_same_instance_for_each_call( } [Fact] - public void Instances_registered_PerRequest_returns_a_different_instance_for_each_call() + public void InstancesRegisteredPerRequestReturnsaDifferentInstanceForEachCall() { var container = new SimpleContainer(); container.PerRequest(); @@ -75,7 +75,7 @@ public void Instances_registered_PerRequest_returns_a_different_instance_for_eac } [Fact] - public void Instances_registered_with_different_keys_get_all_instances_return_all() + public void InstancesRegisteredWithDifferentKeysGetAllInstancesReturnAll() { var container = new SimpleContainer(); container.RegisterInstance(typeof(object), "test", new object()); diff --git a/src/Caliburn.Micro.Core.Tests/SimpleContainer_Find_Constructor.cs b/src/Caliburn.Micro.Core.Tests/SimpleContainer_Find_Constructor.cs index 9ba8020b..fa670f21 100644 --- a/src/Caliburn.Micro.Core.Tests/SimpleContainer_Find_Constructor.cs +++ b/src/Caliburn.Micro.Core.Tests/SimpleContainer_Find_Constructor.cs @@ -6,7 +6,7 @@ public partial class SimpleContainer_Find_Constructor { [Fact] - public void Container_Finds_Single_Constructor() + public void ContainerFindsSingleConstructor() { var container = new SimpleContainer(); container.Singleton(); @@ -14,7 +14,7 @@ public void Container_Finds_Single_Constructor() } [Fact] - public void Container_No_EmptyConstructor() + public void ContainerNoEmptyConstructor() { var container = new SimpleContainer(); container.Singleton(); @@ -22,7 +22,7 @@ public void Container_No_EmptyConstructor() } [Fact] - public void Container_SingleIntConstructor() + public void ContainerSingleIntConstructor() { var container = new SimpleContainer(); container.Singleton(); @@ -32,7 +32,7 @@ public void Container_SingleIntConstructor() } [Fact] - public void Container_ChooseConstructorWithRegisteredParameter() + public void ContainerChooseConstructorWithRegisteredParameter() { var container = new SimpleContainer(); container.Singleton(); @@ -42,7 +42,7 @@ public void Container_ChooseConstructorWithRegisteredParameter() } [Fact] - public void Container_ChooseEmptyConstructorWithoutRegisteredParameter() + public void ContainerChooseEmptyConstructorWithoutRegisteredParameter() { var container = new SimpleContainer(); container.Singleton(); @@ -51,7 +51,7 @@ public void Container_ChooseEmptyConstructorWithoutRegisteredParameter() } [Fact] - public void BuildUp_ShouldInjectProperties() + public void BuildUpShouldInjectProperties() { var container = new SimpleContainer(); var instance = new TestServiceWithDependency(); diff --git a/src/Caliburn.Micro.Core.Tests/SimpleContainer_Recursive.cs b/src/Caliburn.Micro.Core.Tests/SimpleContainer_Recursive.cs index 9bd37a12..0774f70b 100644 --- a/src/Caliburn.Micro.Core.Tests/SimpleContainer_Recursive.cs +++ b/src/Caliburn.Micro.Core.Tests/SimpleContainer_Recursive.cs @@ -19,7 +19,7 @@ private static void RegisterAllComponents(SimpleContainer container) } [Fact] - public void Instances_Are_Recursively_Property_Injected_When_Enabled() + public void InstancesAreRecursivelyPropertyInjectedWhenEnabled() { var container = new SimpleContainer { @@ -34,7 +34,7 @@ public void Instances_Are_Recursively_Property_Injected_When_Enabled() } [Fact] - public void BuildUp_Injects_All_Registered_Dependencies_Non_Recursively() + public void BuildUpInjectsAllRegisteredDependenciesNonRecursively() { var container = new SimpleContainer(); RegisterAllComponents(container); @@ -46,7 +46,7 @@ public void BuildUp_Injects_All_Registered_Dependencies_Non_Recursively() } [Fact] - public void BuildUp_Injects_Dependencies_Recursively() + public void BuildUpInjectsDependenciesRecursively() { var container = new SimpleContainer { @@ -62,7 +62,7 @@ public void BuildUp_Injects_Dependencies_Recursively() } [Fact] - public void BuildUp_Injects_Enumerable_Dependencies() + public void BuildUpInjectsEnumerableDependencies() { var container = new SimpleContainer { @@ -78,7 +78,7 @@ public void BuildUp_Injects_Enumerable_Dependencies() } [Fact] - public void BuildUp_Injects_Properties_Of_Enumerable_Dependencies() + public void BuildUpInjectsPropertiesOfEnumerableDependencies() { var container = new SimpleContainer { @@ -94,7 +94,7 @@ public void BuildUp_Injects_Properties_Of_Enumerable_Dependencies() } [Fact] - public void BuildUp_Throws_When_Multiple_Types_Found_For_Component() + public void BuildUpThrowsWhenMultipleTypesFoundForComponent() { var container = new SimpleContainer(); RegisterAllComponents(container); From 2bca384b7799b624e659f81a0acee3c91f5c5516 Mon Sep 17 00:00:00 2001 From: Ken Tucker Date: Wed, 25 Dec 2024 14:14:37 -0500 Subject: [PATCH 10/10] Update Caliburn.Micro.Platform.Core.csproj --- .../Caliburn.Micro.Platform.Core.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Caliburn.Micro.Platform.Core/Caliburn.Micro.Platform.Core.csproj b/src/Caliburn.Micro.Platform.Core/Caliburn.Micro.Platform.Core.csproj index fad5c7ca..3a63fb2a 100644 --- a/src/Caliburn.Micro.Platform.Core/Caliburn.Micro.Platform.Core.csproj +++ b/src/Caliburn.Micro.Platform.Core/Caliburn.Micro.Platform.Core.csproj @@ -14,6 +14,7 @@ +