public TestClassWithFixtureArguments(ITestCollection testCollection, ITypeInfo underlyingClass, SingleFlagEnum[] fixtureArguments)
        {
            EnsureArg.IsNotNull(testCollection, nameof(testCollection));
            EnsureArg.IsNotNull(underlyingClass, nameof(underlyingClass));
            EnsureArg.IsNotNull(fixtureArguments, nameof(fixtureArguments));

            _underlyingClass = underlyingClass;
            Class            = new TestClassWithFixtureArgumentsTypeInfo(underlyingClass, fixtureArguments);
            FixtureArguments = fixtureArguments;
            TestCollection   = testCollection;
        }
        /// <inheritdoc/>
        public void Deserialize(IXunitSerializationInfo info)
        {
            TestCollection = info.GetValue <ITestCollection>("TestCollection");

            var assemblyName = info.GetValue <string>("ClassAssemblyName");
            var typeName     = info.GetValue <string>("ClassTypeName");

            _underlyingClass = Reflector.Wrap(GetType(assemblyName, typeName));

            Enum[] rawFixtureArguments = info.GetValue <Enum[]>("FixtureArguments");

            FixtureArguments = Array.ConvertAll(rawFixtureArguments, e => new SingleFlagEnum(e));

            Class = new TestClassWithFixtureArgumentsTypeInfo(_underlyingClass, FixtureArguments);
        }