/// <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); }
/// <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); }
/// <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); }