Exemple #1
0
        /// <summary>
        /// Creates fake <see cref="CompressedArchiveFormat"/> and <see cref="CompressedArchiveAccessImplementation"/> values and registers them for use.
        /// </summary>
        /// <param name="test">The test that wishes to use the mixin.</param>
        /// <param name="numberOfFileExtensionsAndImplementations">The number of file extensions and implementations to register.</param>
        /// <returns>The unique fake compressed archive format to use in a test, which has been registered for further use.</returns>
        public static CompressedArchiveFormat RegisterTestCompressedArchiveFormat(this ICompressedArchiveTest test, int numberOfFileExtensionsAndImplementations = 1)
        {
            var format          = test.GetFakeCompressedArchiveFormatForTest();
            var implementations = new List <CompressedArchiveAccessImplementation>();
            var fileExtensions  = new List <string>();

            for (var i = 0; i < numberOfFileExtensionsAndImplementations; ++i)
            {
                var implementation = test.GetFakeCompressedArchiveAccessImplementationForTest();
                implementations.Add(implementation);
                fileExtensions.Add(".fake" + implementation);
            }

            if (!format.RegisterCompressedArchiveFormat(fileExtensions, implementations))
            {
                throw new FailedToRegisterTestCompressedArchiveFormatException();
            }

            return(format);
        }
Exemple #2
0
        /// <summary>
        /// Gets a fake, unique compressed archive implementation value to use for tests.
        /// </summary>
        /// <param name="test">The test that wishes to use the mixin.</param>
        /// <returns>A unique fake compressed archive implementation value.</returns>
        public static CompressedArchiveAccessImplementation GetFakeCompressedArchiveAccessImplementationForTest(this ICompressedArchiveTest test)
        {
            var fakeImplementation = CompressedArchiveAccessImplementation.Other + Interlocked.Increment(ref _fakeImplementationOffset);

            return(fakeImplementation);
        }
Exemple #3
0
        /// <summary>
        /// Gets a fake, unique compressed archive format value to use for tests.
        /// </summary>
        /// <param name="test">The test that wishes to use the mixin.</param>
        /// <returns>A unique fake compressed archive format value.</returns>
        public static CompressedArchiveFormat GetFakeCompressedArchiveFormatForTest(this ICompressedArchiveTest test)
        {
            var fakeFormat = CompressedArchiveFormat.BZip2 + Interlocked.Increment(ref _fakeFormatOffset);

            return(fakeFormat);
        }