public void GetExtension_ValidatesArguments()
        {
            // Arrange

            // Act

            // Assert
            Assert.Throws <ArgumentNullException>(() => WorkContextExtensionCollectionExtensions.GetExtension <object>(null /* collection */));
        }
        public void SetExtension_ValidatesArguments()
        {
            // Arrange
            var collection = CreateCollection <object>();

            // Act

            // Assert
            Assert.Throws <ArgumentNullException>(() => WorkContextExtensionCollectionExtensions.SetExtension <object>(null /* collection */, null /* extension */));
        }
        public void GetExtension_GetsExtensionFromCollection()
        {
            // Arrange
            var extension  = new object();
            var collection = CreateCollection <object>(extension);

            // Act
            var result = WorkContextExtensionCollectionExtensions.GetExtension <object>(collection);

            // Assert
            Assert.NotNull(result);
            Assert.Same(extension, result);
        }
        public void SetExtension_SetsExtensionInCollection()
        {
            // Arrange
            var    extension         = new object();
            object capturedExtension = null;
            var    collection        = CreateCollection <object>(onSet: f => capturedExtension = f);

            // Act
            WorkContextExtensionCollectionExtensions.SetExtension <object>(collection, extension);

            // Assert
            Assert.NotNull(capturedExtension);
            Assert.Same(extension, capturedExtension);
        }