public void Create_WithInvalidName_ThrowsInvalidNameException(string name)
        {
            // Arrange
              var testManager = new MemoryContainerManager();

              // Act & Assert
              Assert.Throws<InvalidNameException>(() => testManager.Create(name));
        }
        public void Create_WithNameThatAlreadyExists_ReturnsExistingContainer()
        {
            // Arrange
              var testContainer = MockRepository.GenerateStub<IBlobContainer>();
              var store = new Dictionary<string, IBlobContainer> { { "foo", testContainer } };
              var testManager = new MemoryContainerManager(store);

              // Act
              var container = testManager.Create("foo");

              // Assert
              Assert.That(container, Is.EqualTo(testContainer));
        }
        public void Create_WithValidName_ReturnsCreatedContainer(string name)
        {
            // Arrange
              var testManager = new MemoryContainerManager();

              // Act
              var container = testManager.Create(name);

              // Assert
              Assert.That(container.Name, Is.EqualTo(name));
        }
        public void Create_WithValidName_CreatesNewContainer(string name)
        {
            // Arrange
              var store = new Dictionary<string, IBlobContainer>();
              var testManager = new MemoryContainerManager(store);

              // Act
              testManager.Create(name);

              // Assert
              Assert.That(store.Keys, Has.Member(name));
              Assert.That(store[name], Is.InstanceOf<IBlobContainer>());
        }
        public void List_WithNoContainers_ReturnsEmptyCollection()
        {
            // Arrange
              var testManager = new MemoryContainerManager();

              // Act
              var containers = testManager.List();

              // Assert
              Assert.That(containers, Is.Empty);
        }
        public void List_WithContainers_ReturnsAllContainers()
        {
            // Arrange
              var fooContainer = MockRepository.GenerateStub<IBlobContainer>();
              var barContainer = MockRepository.GenerateStub<IBlobContainer>();
              var store = new Dictionary<string, IBlobContainer> {
              { "foo", fooContainer },
              { "bar", barContainer }
              };
              var testManager = new MemoryContainerManager(store);

              // Act
              var containers = testManager.List();

              // Assert
              Assert.That(containers.Count(), Is.EqualTo(2));
              Assert.That(containers, Has.Member(fooContainer));
              Assert.That(containers, Has.Member(barContainer));
        }
        public void Get_WithNonExistentName_ReturnsNull()
        {
            // Arrange
              var testManager = new MemoryContainerManager();

              // Act
              var container = testManager.Get("foo");

              // Assert
              Assert.That(container, Is.Null);
        }
        public void Get_WithExistingName_ReturnsContainerWithSpecifiedName(string name)
        {
            // Arrange
              var store = new Dictionary<string, IBlobContainer> {
                                                           { "foo", MockRepository.GenerateStub<IBlobContainer>() },
                                                           { "bar", MockRepository.GenerateStub<IBlobContainer>() }
                                                         };
              var testManager = new MemoryContainerManager(store);

              // Act
              var container = testManager.Get(name);

              // Assert
              Assert.That(container, Is.EqualTo(store[name]));
        }
        public void Delete_WithNonExistentContainer_NoExceptionIsThrown()
        {
            // Arrange
              var testManager = new MemoryContainerManager();

              // Act & Assert
              Assert.DoesNotThrow(() => testManager.Delete("foo"));
        }
        public void Delete_WithExistingContainer_ContainerIsDeleted(string name)
        {
            // Arrange
              var store = new Dictionary<string, IBlobContainer> {
              { "foo", MockRepository.GenerateStub<IBlobContainer>() },
              { "bar", MockRepository.GenerateStub<IBlobContainer>() }
              };
              var deletedContainer = store[name];
              var testManager = new MemoryContainerManager(store);

              // Act
              testManager.Delete(name);

              // Assert
              Assert.That(store, Has.No.Member(deletedContainer));
              Assert.That(store.Keys.Count(), Is.EqualTo(1));
        }