public static void GetValue_GivenNullVersion_ThrowsArgmentNullException() { var dictionary = new Dictionary <Version, Func <int> > { [new Version(1, 0)] = () => 1, [new Version(1, 1)] = () => 2 }; var versionDictionary = new VersionResolvingFactory <int>(dictionary); Assert.That(() => versionDictionary.GetValue(null), Throws.ArgumentNullException); }
public static void GetValue_GivenVersionMoreThanHighestInCtor_ReturnsHighestInCtor() { var dictionary = new Dictionary <Version, Func <int> > { [new Version(1, 0)] = () => 1, [new Version(1, 1)] = () => 2 }; var versionDictionary = new VersionResolvingFactory <int>(dictionary); var value = versionDictionary.GetValue(new Version(2, 0)); Assert.That(value, Is.EqualTo(2)); }
public static void GetValue_GivenVersionAboveMiddle_ReturnsValueFromMiddleVersion() { var dictionary = new Dictionary <Version, Func <int> > { [new Version(1, 0)] = () => 1, [new Version(1, 1)] = () => 2, [new Version(2, 0)] = () => 3 }; var versionDictionary = new VersionResolvingFactory <int>(dictionary); var value = versionDictionary.GetValue(new Version(1, 5)); Assert.That(value, Is.EqualTo(2)); }
private async Task <Option <IDatabaseSequenceProvider> > LoadVersionedSequenceProvider() { var version = await Dialect.GetDatabaseVersionAsync(Connection, CancellationToken.None).ConfigureAwait(false); var factories = new Dictionary <Version, Func <IDatabaseSequenceProvider> > { [new Version(9, 6)] = () => new PostgreSqlDatabaseSequenceProviderBase(DbConnection, IdentifierDefaults, IdentifierResolver), [new Version(10, 0)] = () => new Versions.V10.PostgreSqlDatabaseSequenceProvider(DbConnection, IdentifierDefaults, IdentifierResolver) }; var versionLookup = new VersionResolvingFactory <IDatabaseSequenceProvider>(factories); var result = versionLookup.GetValue(version); return(Option <IDatabaseSequenceProvider> .Some(result)); }