コード例 #1
0
        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.");
        }
コード例 #2
0
ファイル: Repairer.cs プロジェクト: cs17resch01003/gpurepair
        /// <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);
        }
コード例 #3
0
        public void ProgramMetadata_ReplaceStringMetadata_ReplacesMetadata(IProgramMetadataFieldId field, IEnumerable <string> replacementData)
        {
            var metadata = new ProgramMetadata();

            metadata.ReplaceValue(field, replacementData);

            Assert.Equal(replacementData, GetStringMetadata(metadata, field));
        }
コード例 #4
0
        public void ProgramMetadata_ReplaceBuildDatesMetadataWithNull_ResultIsNotNull()
        {
            var metadata = new ProgramMetadata();

            metadata.ReplaceBuildDates(null);

            Assert.NotNull(metadata.BuildDates);
        }
コード例 #5
0
        public void ProgramMetadata_ReplaceStringMetadataWithNull_ResultIsNotNull(IProgramMetadataFieldId field)
        {
            var metadata = new ProgramMetadata();

            metadata.ReplaceValue(field, null);

            Assert.NotNull(GetStringMetadata(metadata, field));
        }
コード例 #6
0
        internal ProgramMetadata GetProgramMetadata()
        {
            var meta = new ProgramMetadata();
            var key  = nameof(ProgramMetadata);

            ConfigurationBinder.Bind(this.Configuration, key, meta);
            return(meta);
        }
コード例 #7
0
        /// <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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
ファイル: Startup.cs プロジェクト: BryanWilhite/Songhay.Blog
        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";
            });
        }
コード例 #12
0
        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());
        }
コード例 #13
0
        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);
        }
コード例 #14
0
        public void ProgramMetadata_ReplaceBogusStringMetadata_ThrowsInvalidOperationException(IProgramMetadataFieldId field)
        {
            var metadata = new ProgramMetadata();

            Assert.Throws <InvalidOperationException>(() => metadata.ReplaceValue(field, new[] { "Nanu nanu" }));
        }