public void ShouldThrowExceptionIfPathToCreateIsNull()
        {
            // Arrange
            FileDatabaseArchiveFactory factory = new FileDatabaseArchiveFactory();

            // Act
            Exception exception = Record.Exception(() => factory.Create(null));

            // Assert
            Assert.IsType <ArgumentException>(exception);
        }
        public void ShouldNotBeAbleToCreateAnArchiveWhenPathIsEmpty()
        {
            // Arrange
            FileDatabaseArchiveFactory factory = new FileDatabaseArchiveFactory();

            // Act
            bool canCreate = factory.CanCreate(null);

            // Assert
            Assert.False(canCreate);
        }
        public void ShouldCreateAFileDatabaseArchive()
        {
            // Arrange
            FileDatabaseArchiveFactory factory = new FileDatabaseArchiveFactory();
            DirectoryInfo testDirectory        = FileUtil.CreateTempDirectory();

            // Act
            IDatabaseArchive archive = factory.Create(testDirectory.FullName);

            // Assert
            Assert.IsType <FileDatabaseArchive>(archive);
        }
        public void ShouldNotBeAbleToCreateAnArchiveFromAFile()
        {
            // Arrange
            FileDatabaseArchiveFactory factory = new FileDatabaseArchiveFactory();
            string tempFile = Path.GetTempFileName();

            // Act
            bool canCreate = factory.CanCreate(tempFile);

            // Assert
            Assert.False(canCreate);

            new FileInfo(tempFile).Delete();
        }
        public void ShouldBeAbleToCreateAnArchiveFromADirectory()
        {
            // Arrange
            FileDatabaseArchiveFactory factory = new FileDatabaseArchiveFactory();
            DirectoryInfo testDirectory        = FileUtil.CreateTempDirectory();

            // Act
            bool canCreate = factory.CanCreate(testDirectory.FullName);

            // Assert
            Assert.True(canCreate);

            testDirectory.Delete(true);
        }
        public void ShouldCreateArchiveWithTheSpecifiedPath()
        {
            // Arrange
            FileDatabaseArchiveFactory factory = new FileDatabaseArchiveFactory();
            DirectoryInfo testDirectory        = FileUtil.CreateTempDirectory();

            // Act
            IDatabaseArchive archive = factory.Create(testDirectory.FullName);

            // Assert
            Assert.Equal(testDirectory.FullName, archive.ArchivePath);

            testDirectory.Delete();
        }