public void InitializeTest() { var targetDirectoryInfo = this.TestContext.ShouldGetConventionalProjectDirectoryInfo(this.GetType()); var basePath = targetDirectoryInfo.FullName; var meta = new ProgramMetadata(); var configuration = this.TestContext.ShouldLoadConfigurationFromConventionalProject(this.GetType(), b => { b.AddJsonFile("./app-settings.songhay-system.json", optional: false, reloadOnChange: false); b.SetBasePath(basePath); return(b); }); configuration.Bind(nameof(ProgramMetadata), meta); this.TestContext.WriteLine($"{meta}"); restApiMetadata = meta.ToAzureSearchRestApiMetadata(); cloudStorageMeta = meta.CloudStorageSet["SonghayCloudStorage"]; Assert.IsNotNull(cloudStorageMeta, "The expected connection string is not here."); azureSearchPostTemplate = configuration .GetSection(nameof(AzureSearchPostTemplate)) .Get <AzureSearchPostTemplate>(); Assert.IsNotNull(azureSearchPostTemplate, "The expected Azure Search template is not here."); }
/// <summary> /// Initialize the variables. /// </summary> /// <param name="filePath">The file path.</param> /// <param name="disableInspection">Disables inspection of programmer inserted barriers.</param> /// <param name="useAxioms">Use axioms for instrumentation instead of variable assignments.</param> public Repairer(string filePath, bool disableInspection, bool useAxioms) { this.disableInspection = disableInspection; ProgramMetadata.PopulateMetadata(filePath, useAxioms); constraintGenerator = new ConstraintGenerator(filePath, useAxioms); }
public void ProgramMetadata_ReplaceStringMetadata_ReplacesMetadata(IProgramMetadataFieldId field, IEnumerable <string> replacementData) { var metadata = new ProgramMetadata(); metadata.ReplaceValue(field, replacementData); Assert.Equal(replacementData, GetStringMetadata(metadata, field)); }
public void ProgramMetadata_ReplaceBuildDatesMetadataWithNull_ResultIsNotNull() { var metadata = new ProgramMetadata(); metadata.ReplaceBuildDates(null); Assert.NotNull(metadata.BuildDates); }
public void ProgramMetadata_ReplaceStringMetadataWithNull_ResultIsNotNull(IProgramMetadataFieldId field) { var metadata = new ProgramMetadata(); metadata.ReplaceValue(field, null); Assert.NotNull(GetStringMetadata(metadata, field)); }
internal ProgramMetadata GetProgramMetadata() { var meta = new ProgramMetadata(); var key = nameof(ProgramMetadata); ConfigurationBinder.Bind(this.Configuration, key, meta); return(meta); }
/// <summary> /// Converts <see cref="ProgramMetadata"/> /// to <see cref="RestApiMetadata"/> /// for social twitter. /// </summary> /// <param name="metadata">The metadata.</param> /// <returns></returns> public static RestApiMetadata ToAzureSearchRestApiMetadata(this ProgramMetadata metadata) { if (metadata == null) { throw new ArgumentNullException(nameof(metadata), "The expected Program metadata is not here."); } var restApiMetadata = metadata.RestApiMetadataSet["AzureSearch"]; return(restApiMetadata); }
public void ProgramMetadata_ReplaceBuildDatesMetadata_ReplacesMetadata() { var metadata = new ProgramMetadata(); var dates = new[] { new MetadataDateTimeBuilder(2001).WithMonth(2).Build(), new MetadataDateTimeBuilder(1984).WithMonth(6).Build() }; metadata.ReplaceBuildDates(dates); Assert.Equal(dates, metadata.BuildDates); }
public void ProgramMetadata_ReplaceReleaseDatesMetadata_ReplacesMetadata() { var metadata = new ProgramMetadata(); var dates = new[] { new MetadataDateTimeBuilder(1999).WithMonth(4).Build(), new MetadataDateTimeBuilder(1989).WithMonth(8).Build() }; metadata.ReplaceReleaseDates(dates); Assert.Equal(dates, metadata.ReleaseDates); }
public static CloudStorageAccount ToCloudStorageAccount(this ConfigurationBuilder builder, string basePath, string connectionStringName) { if (builder == null) { throw new NullReferenceException("The expected Configuration builder is not here."); } if (!Directory.Exists(basePath)) { throw new DirectoryNotFoundException("The expected configuration base path is not here."); } builder .SetBasePath(basePath) .AddJsonFile(AppScalars.conventionalSettingsFile, optional: false, reloadOnChange: true); var meta = new ProgramMetadata(); builder.Build().Bind(nameof(ProgramMetadata), meta); if (meta.CloudStorageSet == null) { throw new NullReferenceException("The expected cloud storage set is not here."); } var key = AppScalars.cloudStorageSetName; var test = meta.CloudStorageSet.TryGetValue(key, out var set); if (!test) { throw new NullReferenceException($"The expected cloud storage set, {key}, is not here."); } if (!set.Any()) { throw new NullReferenceException($"The expected cloud storage set items for {key} are not here."); } test = set.TryGetValue(connectionStringName, out var connectionString); if (!test) { throw new NullReferenceException($"The expected cloud storage set connection, {connectionStringName}, is not here."); } var cloudStorageAccount = CloudStorageAccount.Parse(connectionString); return(cloudStorageAccount); }
public void ConfigureServices(IServiceCollection services) { services.AddMvc(); var meta = new ProgramMetadata(); this.Configuration.Bind(nameof(ProgramMetadata), meta); var validation = meta.ToValidationResults(); if (validation.Any()) { throw new ApplicationException(validation.ToDisplayText()); } #region functional members: BlogRepository serveRepository(IServiceProvider factory) { var set = meta .CloudStorageSet .TryGetValueWithKey("SonghayCloudStorage"); var connectionString = set.TryGetValueWithKey("classic"); var cloudStorageAccount = CloudStorageAccount.Parse(connectionString); var repositoryKeys = new AzureBlobKeys(); repositoryKeys.Add <BlogEntry>(e => e.Slug); var container = cloudStorageAccount.GetContainerReference(set.TryGetValueWithKey("classic-day-path-container")); return(new BlogRepository(repositoryKeys, container)); } #endregion services .AddSingleton <IRepositoryAsync, BlogRepository>(serveRepository) .AddSingleton(factory => meta.ToAzureSearchRestApiMetadata()) .AddSingleton(factory => this.Configuration.GetSection(nameof(AzureSearchPostTemplate)).Get <AzureSearchPostTemplate>()) .AddSpaStaticFiles(configuration => { configuration.RootPath = "ClientApp/dist"; }); }
public void ProgramMetadata_GetValues_VerifyEmpty() { var metadata = new ProgramMetadata(); Assert.False(metadata.LongNames.Any()); Assert.False(metadata.ShortNames.Any()); Assert.False(metadata.Descriptions.Any()); Assert.False(metadata.Publishers.Any()); Assert.False(metadata.Programmers.Any()); Assert.False(metadata.Designers.Any()); Assert.False(metadata.Graphics.Any()); Assert.False(metadata.Music.Any()); Assert.False(metadata.SoundEffects.Any()); Assert.False(metadata.Voices.Any()); Assert.False(metadata.Documentation.Any()); Assert.False(metadata.Artwork.Any()); Assert.False(metadata.ReleaseDates.Any()); Assert.False(metadata.Licenses.Any()); Assert.False(metadata.ContactInformation.Any()); Assert.False(metadata.Versions.Any()); Assert.False(metadata.BuildDates.Any()); Assert.False(metadata.AdditionalInformation.Any()); }
private IEnumerable <string> GetStringMetadata(ProgramMetadata metadata, IProgramMetadataFieldId field) { IEnumerable <string> stringData = null; switch (field) { case IProgramMetadataFieldId.LongNames: stringData = metadata.LongNames; break; case IProgramMetadataFieldId.ShortNames: stringData = metadata.ShortNames; break; case IProgramMetadataFieldId.Descriptions: stringData = metadata.Descriptions; break; case IProgramMetadataFieldId.Publishers: stringData = metadata.Publishers; break; case IProgramMetadataFieldId.Programmers: stringData = metadata.Programmers; break; case IProgramMetadataFieldId.Designers: stringData = metadata.Designers; break; case IProgramMetadataFieldId.Graphics: stringData = metadata.Graphics; break; case IProgramMetadataFieldId.Music: stringData = metadata.Music; break; case IProgramMetadataFieldId.SoundEffects: stringData = metadata.SoundEffects; break; case IProgramMetadataFieldId.Voices: stringData = metadata.Voices; break; case IProgramMetadataFieldId.Documentation: stringData = metadata.Documentation; break; case IProgramMetadataFieldId.Artwork: stringData = metadata.Artwork; break; case IProgramMetadataFieldId.Licenses: stringData = metadata.Licenses; break; case IProgramMetadataFieldId.ContactInformation: stringData = metadata.ContactInformation; break; case IProgramMetadataFieldId.Versions: stringData = metadata.Versions; break; case IProgramMetadataFieldId.AdditionalInformation: stringData = metadata.AdditionalInformation; break; default: throw new InvalidOperationException(); } return(stringData); }
public void ProgramMetadata_ReplaceBogusStringMetadata_ThrowsInvalidOperationException(IProgramMetadataFieldId field) { var metadata = new ProgramMetadata(); Assert.Throws <InvalidOperationException>(() => metadata.ReplaceValue(field, new[] { "Nanu nanu" })); }