Example #1
0
        public async Task GetAllSeiyuuRolesAsync_GivenMultipleRoles_ShouldReturnMultiple()
        {
            // Given
            var seiyuuId   = Guid.NewGuid();
            var dbContext  = InMemoryDbProvider.GetDbContext();
            var repository = new SeiyuuRoleRepository(dbContext);

            var japanese = new LanguageBuilder().WithLanguageId(LanguageId.Japanese).Build();
            var seiyuu   = new SeiyuuBuilder().WithId(seiyuuId).Build();

            seiyuu.Role = new List <AnimeRole>
            {
                new AnimeRoleBuilder().WithLanguage(japanese).Build(),
                new AnimeRoleBuilder().WithLanguage(japanese).Build(),
                new AnimeRoleBuilder().WithLanguage(japanese).Build(),
                new AnimeRoleBuilder().WithLanguage(japanese).Build(),
                new AnimeRoleBuilder().WithLanguage(japanese).Build(),
            };

            await dbContext.AddAsync(seiyuu);

            await dbContext.SaveChangesAsync();

            // When
            var result = await repository.GetAllSeiyuuRolesAsync(seiyuuId, false);

            // Then
            result.Should().HaveCount(5);
        }
        public void UpdateTranslate_should_update_translate()
        {
            var dto        = TranslateFakeData.GetFakedUpdatedTranslate();
            var translate  = Substitute.For <Translator>();
            var repository = Substitute.For <ITranslationRepository>();

            repository.GetById(dto.Id).Returns(translate);

            var sut = new TranslationService(repository);

            sut.ModifyTranslate(dto);

            var language     = new LanguageBuilder().WithAbbrevation(dto.LanguageAbbr).Build();
            var phraseType   = new PhraseTypeBuilder().WithName(dto.PhraseType).Build();
            var phrase       = new PhraseBuilder().WithId(dto.PhraseId).WithPhraseType(phraseType).Build();
            var translations = new List <Domain.Entities.Translation>()
            {
                new Domain.Entities.Translation(language, dto.Translation)
            };
            var expectedTranslate = new TranslateBuilder()
                                    .WithId(dto.Id)
                                    .WithPhrase(phrase)
                                    .WithTranslations(translations).Build();

            translate.Received().Update(phrase, translations);
        }
Example #3
0
        public void MergeTest()
        {
            var expectedBuilder = new LanguageBuilder();

            expectedBuilder.AddLanguage(new LanguageModel("py", "file1.py"));
            expectedBuilder.AddLanguage(new LanguageModel("py", "file2.py"));
            expectedBuilder.AddLanguage(new LanguageModel("cs", "file1.cs"));
            expectedBuilder.AddLanguage(new LanguageModel("java", "file1.java"));

            var builder1 = new LanguageBuilder();

            builder1.AddLanguage(new LanguageModel("py", "file1.py"));
            builder1.AddLanguage(new LanguageModel("py", "file2.py"));

            var builder2 = new LanguageBuilder();

            builder2.AddLanguage(new LanguageModel("cs", "file1.cs"));
            builder2.AddLanguage(new LanguageModel("java", "file1.java"));

            var resultMerge  = builder1.Merge(builder2);
            var builderMerge = (LanguageBuilder)resultMerge;

            Assert.AreEqual(expectedBuilder.LanguageAttributes["Phyton"].Count, builderMerge.LanguageAttributes["Phyton"].Count);
            Assert.AreEqual(expectedBuilder.LanguageAttributes["Java"].File[0], builderMerge.LanguageAttributes["Java"].File[0]);
            Assert.AreEqual(expectedBuilder.LanguageAttributes["C#"].File[0], builderMerge.LanguageAttributes["C#"].File[0]);
        }
Example #4
0
        public async Task GetAllSeiyuuRolesByMalIdAsync_GivenSeiyuuWithMultipleRolesAndMainRolesOnly_ShouldReturnPartial()
        {
            // Given
            const int seiyuuMalId = 1;
            var       dbContext   = InMemoryDbProvider.GetDbContext();
            var       repository  = new SeiyuuRoleRepository(dbContext);

            var japanese       = new LanguageBuilder().WithLanguageId(LanguageId.Japanese).Build();
            var seiyuu         = new SeiyuuBuilder().WithMalId(seiyuuMalId).Build();
            var mainRole       = new AnimeRoleTypeBuilder().WithId(AnimeRoleTypeId.Main).Build();
            var supportingRole = new AnimeRoleTypeBuilder().WithId(AnimeRoleTypeId.Supporting).Build();

            seiyuu.Role = new List <AnimeRole>
            {
                new AnimeRoleBuilder().WithLanguage(japanese).WithRoleType(mainRole).Build(),
                new AnimeRoleBuilder().WithLanguage(japanese).WithRoleType(supportingRole).Build(),
                new AnimeRoleBuilder().WithLanguage(japanese).WithRoleType(supportingRole).Build(),
                new AnimeRoleBuilder().WithLanguage(japanese).WithRoleType(supportingRole).Build(),
                new AnimeRoleBuilder().WithLanguage(japanese).WithRoleType(mainRole).Build()
            };

            await dbContext.AddAsync(seiyuu);

            await dbContext.SaveChangesAsync();

            // When
            var result = await repository.GetAllSeiyuuRolesByMalIdAsync(seiyuuMalId, true);

            // Then
            result.Should().HaveCount(2);
        }
Example #5
0
        public void Can_Export_Languages()
        {
            // Arrange
            ILocalizationService localizationService = GetRequiredService <ILocalizationService>();

            ILanguage languageNbNo = new LanguageBuilder()
                                     .WithCultureInfo("nb-NO")
                                     .WithCultureName("Norwegian")
                                     .Build();

            localizationService.Save(languageNbNo);

            ILanguage languageEnGb = new LanguageBuilder()
                                     .WithCultureInfo("en-GB")
                                     .Build();

            localizationService.Save(languageEnGb);

            var      newPackageXml        = XElement.Parse(ImportResources.Dictionary_Package);
            XElement languageItemsElement = newPackageXml.Elements("Languages").First();

            // Act
            XElement xml = Serializer.Serialize(new[] { languageNbNo, languageEnGb });

            // Assert
            Assert.That(xml.ToString(), Is.EqualTo(languageItemsElement.ToString()));
        }
Example #6
0
        public void Set_Default_Language()
        {
            ILanguage languageEnAu = new LanguageBuilder()
                                     .WithCultureInfo("en-AU")
                                     .WithIsDefault(true)
                                     .Build();

            LocalizationService.Save(languageEnAu);
            ILanguage result = LocalizationService.GetLanguageById(languageEnAu.Id);

            Assert.IsTrue(result.IsDefault);

            ILanguage languageEnNz = new LanguageBuilder()
                                     .WithCultureInfo("en-NZ")
                                     .WithIsDefault(true)
                                     .Build();

            LocalizationService.Save(languageEnNz);
            ILanguage result2 = LocalizationService.GetLanguageById(languageEnNz.Id);

            // re-get
            result = LocalizationService.GetLanguageById(languageEnAu.Id);

            Assert.IsTrue(result2.IsDefault);
            Assert.IsFalse(result.IsDefault);
        }
        public async Task GetAllRolesInSeason_GivenSeasonWithSingleAnimeWithMultipleRoles_ShouldReturnMultiple()
        {
            // Given
            var animeId    = Guid.NewGuid();
            var dbContext  = InMemoryDbProvider.GetDbContext();
            var repository = new SeasonRoleRepository(dbContext);

            var japanese = new LanguageBuilder().WithLanguageId(LanguageId.Japanese).Build();
            var anime    = new AnimeBuilder().WithId(animeId).Build();

            anime.Role = new List <AnimeRole>
            {
                new AnimeRoleBuilder().WithLanguage(japanese).Build(),
                new AnimeRoleBuilder().WithLanguage(japanese).Build(),
                new AnimeRoleBuilder().WithLanguage(japanese).Build(),
                new AnimeRoleBuilder().WithLanguage(japanese).Build(),
                new AnimeRoleBuilder().WithLanguage(japanese).Build(),
            };

            await dbContext.AddAsync(anime);

            await dbContext.SaveChangesAsync();

            // When
            var result = await repository.GetAllRolesInSeason(new List <Guid> {
                animeId
            }, false);

            // Then
            result.Should().HaveCount(5);
        }
        public void TagsCanBecomeInvariantByPropertyTypeAndBackToVariant()
        {
            ILanguage language = new LanguageBuilder()
                                 .WithCultureInfo("fr-FR")
                                 .Build();

            LocalizationService.Save(language); // en-US is already there

            Template template = TemplateBuilder.CreateTextPageTemplate();

            FileService.SaveTemplate(template);

            ContentType  contentType  = ContentTypeBuilder.CreateSimpleContentType("umbMandatory", "Mandatory Doc Type", mandatoryProperties: true, defaultTemplateId: template.Id);
            PropertyType propertyType = CreateAndAddTagsPropertyType(contentType, ContentVariation.Culture);

            ContentTypeService.Save(contentType);

            IContent content1 = ContentBuilder.CreateSimpleContent(contentType, "Tagged content 1", -1);

            content1.SetCultureName("name-fr", "fr-FR");
            content1.SetCultureName("name-en", "en-US");
            content1.AssignTags(PropertyEditorCollection, DataTypeService, Serializer, "tags", new[] { "hello", "world", "some", "tags", "plus" }, culture: "fr-FR");
            content1.AssignTags(PropertyEditorCollection, DataTypeService, Serializer, "tags", new[] { "hello", "world", "another", "one" }, culture: "en-US");
            ContentService.SaveAndPublish(content1);

            propertyType.Variations = ContentVariation.Nothing;
            ContentTypeService.Save(contentType);

            // FIXME: This throws due to index violations
            propertyType.Variations = ContentVariation.Culture;
            ContentTypeService.Save(contentType);

            // TODO: Assert results
        }
Example #9
0
        private void BuildLanguage(Dictionary <string, LanguageTable> tables, bool build)
        {
            string allLanguages = ConversionUtil.GetConfig(ConfigKey.AllLanguage, ConfigFile.LanguageConfig);
            //string languageDirectory = ConversionUtil.GetPath(ConversionUtil.GetConfig(ConfigKey.LanguageDirectory, ConfigFile.LanguageConfig));
            string          languageDirectory = ConversionUtil.GetPath(textTableFolder.Text);
            LanguageBuilder builder           = new LanguageBuilder(
                allLanguages,
                languageDirectory,
                ConversionUtil.GetPath(ConversionUtil.GetConfig(ConfigKey.TranslationDirectory, ConfigFile.LanguageConfig)),
                tables);
            bool success = build ? builder.Build() : builder.RefreshLanguage();

            if (success)
            {
                string[]      languages     = builder.GetLanguages();
                List <string> languageFiles = new List <string>();
                foreach (var language in languages)
                {
                    languageFiles.Add(languageDirectory + "/Language_" + language + ".xls");
                }
                new TableBuilder().Transform(string.Join(";", languageFiles.ToArray()),
                                             textTableConfig.Text,
                                             textBoxPackage.Text,
                                             ConversionUtil.GetConfig(ConfigKey.SpawnList, ConfigFile.InitConfig),
                                             false,
                                             Extends.GetChecked(refreshNote),
                                             ConversionUtil.GetProgramConfig());
            }
        }
        public async Task GetAllRolesInSeason_GivenSeasonWithSingleAnimeWithMultipleRolesAndMainRolesOnly_ShouldReturnPartial()
        {
            // Given
            var animeId    = Guid.NewGuid();
            var dbContext  = InMemoryDbProvider.GetDbContext();
            var repository = new SeasonRoleRepository(dbContext);

            var japanese       = new LanguageBuilder().WithLanguageId(LanguageId.Japanese).Build();
            var anime          = new AnimeBuilder().WithId(animeId).Build();
            var mainRole       = new AnimeRoleTypeBuilder().WithId(AnimeRoleTypeId.Main).Build();
            var supportingRole = new AnimeRoleTypeBuilder().WithId(AnimeRoleTypeId.Supporting).Build();

            anime.Role = new List <AnimeRole>
            {
                new AnimeRoleBuilder().WithLanguage(japanese).WithRoleType(mainRole).Build(),
                new AnimeRoleBuilder().WithLanguage(japanese).WithRoleType(supportingRole).Build(),
                new AnimeRoleBuilder().WithLanguage(japanese).WithRoleType(supportingRole).Build(),
                new AnimeRoleBuilder().WithLanguage(japanese).WithRoleType(supportingRole).Build(),
                new AnimeRoleBuilder().WithLanguage(japanese).WithRoleType(mainRole).Build()
            };

            await dbContext.AddAsync(anime);

            await dbContext.SaveChangesAsync();

            // When
            var result = await repository.GetAllRolesInSeason(new List <Guid> {
                animeId
            }, true);

            // Then
            result.Should().HaveCount(2);
        }
        public void TagsCanBeVariant()
        {
            ILocalizationService languageService = LocalizationService;
            ILanguage            language        = new LanguageBuilder()
                                                   .WithCultureInfo("fr-FR")
                                                   .Build();

            LocalizationService.Save(language); // en-US is already there

            Template template = TemplateBuilder.CreateTextPageTemplate();

            FileService.SaveTemplate(template);

            ContentType contentType = ContentTypeBuilder.CreateSimpleContentType("umbMandatory", "Mandatory Doc Type", mandatoryProperties: true, defaultTemplateId: template.Id);

            CreateAndAddTagsPropertyType(contentType, ContentVariation.Culture);
            ContentTypeService.Save(contentType);

            IContent content1 = ContentBuilder.CreateSimpleContent(contentType, "Tagged content 1", -1);

            content1.SetCultureName("name-fr", "fr-FR");
            content1.SetCultureName("name-en", "en-US");
            content1.AssignTags(PropertyEditorCollection, DataTypeService, Serializer, "tags", new[] { "hello", "world", "some", "tags", "plus" }, culture: "fr-FR");
            content1.AssignTags(PropertyEditorCollection, DataTypeService, Serializer, "tags", new[] { "hello", "world", "another", "one" }, culture: "en-US");
            ContentService.SaveAndPublish(content1);

            content1 = ContentService.GetById(content1.Id);

            string[] frTags = content1.Properties["tags"].GetTagsValue(PropertyEditorCollection, DataTypeService, Serializer, "fr-FR").ToArray();
            Assert.AreEqual(5, frTags.Length);
            Assert.Contains("plus", frTags);
            Assert.AreEqual(-1, frTags.IndexOf("one"));

            string[] enTags = content1.Properties["tags"].GetTagsValue(PropertyEditorCollection, DataTypeService, Serializer, "en-US").ToArray();
            Assert.AreEqual(4, enTags.Length);
            Assert.Contains("one", enTags);
            Assert.AreEqual(-1, enTags.IndexOf("plus"));

            IEnumerable <IGrouping <int?, ITag> > tagGroups = TagService.GetAllTags(culture: "*").GroupBy(x => x.LanguageId);

            foreach (ITag tag in TagService.GetAllTags())
            {
                Console.WriteLine($"{tag.Group}:{tag.Text} {tag.LanguageId}");
            }

            Assert.AreEqual(2, tagGroups.Count());
            IGrouping <int?, ITag> frTagGroup = tagGroups.FirstOrDefault(x => x.Key == 2);

            Assert.IsNotNull(frTagGroup);
            Assert.AreEqual(5, frTagGroup.Count());
            Assert.IsTrue(frTagGroup.Any(x => x.Text == "plus"));
            Assert.IsFalse(frTagGroup.Any(x => x.Text == "one"));
            IGrouping <int?, ITag> enTagGroup = tagGroups.FirstOrDefault(x => x.Key == 1);

            Assert.IsNotNull(enTagGroup);
            Assert.AreEqual(4, enTagGroup.Count());
            Assert.IsTrue(enTagGroup.Any(x => x.Text == "one"));
            Assert.IsFalse(enTagGroup.Any(x => x.Text == "plus"));
        }
Example #12
0
 private void OnDestroy()
 {
     if (lb != null)
     {
         lb.OnLanguageChange -= UpdateText; // remove event
         lb = null;
     }
 }
        public async Task HandleAsync_GivenMultipleCommonSeiyuu_ShouldReturnMultipleResults()
        {
            // Given
            var query = new CompareAnimeQuery {
                AnimeMalIds = new List <long> {
                    1, 2
                }
            };
            var dbContext = InMemoryDbProvider.GetDbContext();

            var miyukiSawashiro     = new SeiyuuBuilder().WithId(Guid.NewGuid()).WithMalId(1).WithName("Miyuki Sawashiro").Build();
            var chiwaSaito          = new SeiyuuBuilder().WithId(Guid.NewGuid()).WithMalId(2).WithName("Chiwa Saito").Build();
            var onePieceAnime       = new AnimeBuilder().WithId(Guid.NewGuid()).WithMalId(1).WithTitle("One Piece").Build();
            var bakemonogatariAnime = new AnimeBuilder().WithId(Guid.NewGuid()).WithMalId(2).WithTitle("Bakemonogatari").Build();
            var japanese            = new LanguageBuilder().WithLanguageId(LanguageId.Japanese).Build();
            var animeRoles          = new List <AnimeRole>
            {
                new AnimeRoleBuilder()
                .WithAnime(onePieceAnime)
                .WithSeiyuu(miyukiSawashiro)
                .WithCharacter(x => x.WithId(Guid.NewGuid()).WithMalId(1).WithName("Charlotte Pudding").Build())
                .WithLanguage(japanese)
                .Build(),
                new AnimeRoleBuilder()
                .WithAnime(bakemonogatariAnime)
                .WithSeiyuu(miyukiSawashiro)
                .WithCharacter(x => x.WithId(Guid.NewGuid()).WithMalId(2).WithName("Kanbaru Suruga").Build())
                .WithLanguage(japanese)
                .Build(),
                new AnimeRoleBuilder()
                .WithAnime(onePieceAnime)
                .WithSeiyuu(chiwaSaito)
                .WithCharacter(x => x.WithId(Guid.NewGuid()).WithMalId(1).WithName("Chimney").Build())
                .WithLanguage(japanese)
                .Build(),
                new AnimeRoleBuilder()
                .WithAnime(bakemonogatariAnime)
                .WithSeiyuu(chiwaSaito)
                .WithCharacter(x => x.WithId(Guid.NewGuid()).WithMalId(2).WithName("Hitagi Senjougahara").Build())
                .WithLanguage(japanese)
                .Build()
            };

            await dbContext.AddRangeAsync(animeRoles);

            await dbContext.SaveChangesAsync();

            var handler = CreateHandler(dbContext);

            // When
            var result = await handler.HandleAsync(query);

            // Then
            result.Should().HaveCount(2);
        }
Example #14
0
 private void sameToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (this.languagesContainer_0 != null)
     {
         if (!string.IsNullOrWhiteSpace(openedloc))
         {
             LanguageBuilder languageBuilder = new LanguageBuilder();
             languageBuilder.Build(this.languagesContainer_0, openedloc);
             MessageBox.Show("Languages save has completed.", "Save completed");
         }
     }
 }
Example #15
0
        public void TransformPathInFolder()
        {
            var test  = "folder1";
            var test2 = @".\TesteFolder\Folder";

            var model = LanguageBuilder.TransformPathToLanguageModel(test);

            Assert.AreEqual("Folder", model.Name);
            Assert.AreEqual("folder1", model.File);
            model = LanguageBuilder.TransformPathToLanguageModel(test2);
            Assert.AreEqual("Folder", model.Name);
            Assert.AreEqual("Folder", model.File);
        }
Example #16
0
        public void InvalidLanguageTest()
        {
            var builder = new LanguageBuilder();
            var valid   = new LanguageModel("rb", "file1.rb");

            builder.AddLanguage(valid);
            valid = new LanguageModel("html", "file1.html");
            builder.AddLanguage(valid);

            Assert.AreEqual(0, builder.LanguageAttributes.Count);
            Assert.IsFalse(builder.LanguageAttributes.ContainsKey("Ruby"));
            Assert.IsFalse(builder.LanguageAttributes.ContainsKey("HTML"));
        }
    private void LoadTextAsset()
    {
        string path = EditorUtility.OpenFilePanel("Open Language Teset", "Assets", "txt");

        if (path != "")
        {
            fileContents = File.ReadAllText(path);
            if (LanguageBuilder.LoadedLanguage() != null)
            {
                formattedContents = LanguageBuilder.LoadedLanguage().Format(fileContents);
            }
        }
    }
    public void TagsCanBecomeInvariant2()
    {
        var language = new LanguageBuilder()
                       .WithCultureInfo("fr-FR")
                       .Build();

        LocalizationService.Save(language); // en-US is already there

        var enId = LocalizationService.GetLanguageIdByIsoCode("en-US").Value;

        var template = TemplateBuilder.CreateTextPageTemplate();

        FileService.SaveTemplate(template);

        var contentType = ContentTypeBuilder.CreateSimpleContentType("umbMandatory", "Mandatory Doc Type",
                                                                     mandatoryProperties: true, defaultTemplateId: template.Id);
        var propertyType = CreateAndAddTagsPropertyType(contentType, ContentVariation.Culture);

        ContentTypeService.Save(contentType);

        IContent content1 = ContentBuilder.CreateSimpleContent(contentType, "Tagged content 1");

        content1.SetCultureName("name-fr", "fr-FR");
        content1.SetCultureName("name-en", "en-US");
        content1.AssignTags(PropertyEditorCollection, DataTypeService, Serializer, "tags",
                            new[] { "hello", "world", "some", "tags", "plus" }, culture: "fr-FR");
        content1.AssignTags(PropertyEditorCollection, DataTypeService, Serializer, "tags",
                            new[] { "hello", "world", "another", "one" }, culture: "en-US");
        ContentService.SaveAndPublish(content1);

        IContent content2 = ContentBuilder.CreateSimpleContent(contentType, "Tagged content 2");

        content2.SetCultureName("name-fr", "fr-FR");
        content2.SetCultureName("name-en", "en-US");
        content2.AssignTags(PropertyEditorCollection, DataTypeService, Serializer, "tags",
                            new[] { "hello", "world", "some", "tags", "plus" }, culture: "fr-FR");
        content2.AssignTags(PropertyEditorCollection, DataTypeService, Serializer, "tags",
                            new[] { "hello", "world", "another", "one" }, culture: "en-US");
        ContentService.SaveAndPublish(content2);

        //// pretend we already have invariant values
        // using (var scope = ScopeProvider.CreateScope())
        // {
        //    scope.Database.Execute("INSERT INTO [cmsTags] ([tag], [group], [languageId]) SELECT DISTINCT [tag], [group], NULL FROM [cmsTags] WHERE [languageId] IS NOT NULL");
        // }

        // this should work
        propertyType.Variations = ContentVariation.Nothing;
        Assert.DoesNotThrow(() => ContentTypeService.Save(contentType));
    }
        public void GetToTranslations_sholud_load_phrases(string typeName, string languageAbbr)
        {
            var builder = new ToTranslateRequestBuilder();
            var type    = new PhraseTypeBuilder().WithName(typeName).Build();
            var lang    = new LanguageBuilder().WithAbbrevation(languageAbbr).Build();;
            ToTranslateRequest request = builder.WithPhraseType(type).WithLanguage(lang).Build();
            var repository             = Substitute.For <ITranslationRepository>();

            var sut        = new TranslationService(repository);
            var fake       = new FakeData(request.PhraseType, request.Language);
            var translates = sut.GetPhrases(request).Returns(fake.GetPhrases());

            Assert.NotEmpty(sut.GetPhrases(request));
        }
Example #20
0
        public void Save_Language_And_GetLanguageById()
        {
            // Arrange
            ILanguage languageEnAu = new LanguageBuilder()
                                     .WithCultureInfo("en-AU")
                                     .Build();

            // Act
            LocalizationService.Save(languageEnAu);
            ILanguage result = LocalizationService.GetLanguageById(languageEnAu.Id);

            // Assert
            Assert.NotNull(result);
        }
Example #21
0
        public void Save_Language_And_GetLanguageByIsoCode()
        {
            // Arrange
            string    isoCode      = "en-AU";
            ILanguage languageEnAu = new LanguageBuilder()
                                     .WithCultureInfo(isoCode)
                                     .Build();

            // Act
            LocalizationService.Save(languageEnAu);
            ILanguage result = LocalizationService.GetLanguageByIsoCode(isoCode);

            // Assert
            Assert.NotNull(result);
        }
Example #22
0
        public void GivenLanguageWhenValidatingThenRequiredRelationsMustExist()
        {
            var builder = new LanguageBuilder(this.Session);
            builder.Build();

            Assert.IsTrue(this.Session.Derive().HasErrors);

            builder.WithIsoCode("XX").Build();

            Assert.IsTrue(this.Session.Derive().HasErrors);

            builder.WithLocalisedName(new LocalisedTextBuilder(this.Session).WithLocale(new Locales(this.Session).FindBy(Locales.Meta.Name, Locales.EnglishGreatBritainName)).WithText("XXX)").Build());

            Assert.IsFalse(this.Session.Derive().HasErrors);
        }
Example #23
0
        public void PointsAddTest()
        {
            var builder = new LanguageBuilder();
            var model   = new LanguageModel("cs", "Somehting.cs");

            builder.AddLanguage(model);
            builder.AddLanguage(model);
            model = new LanguageModel("java", "Program.java");
            builder.AddLanguage(model);
            model = new LanguageModel("py", "program.py");
            builder.AddLanguage(model);
            Assert.AreEqual(2, builder.LanguageAttributes["C#"].Count);
            Assert.AreEqual(1, builder.LanguageAttributes["Java"].Count);
            Assert.AreEqual(1, builder.LanguageAttributes["Phyton"].Count);
        }
    public void Is_Built_Correctly()
    {
        // Arrange
        var builder = new LanguageBuilder();

        var expected = CultureInfo.GetCultureInfo("en-GB");

        // Act
        var language = builder
                       .WithCultureInfo(expected.Name)
                       .Build();

        // Assert
        Assert.AreEqual(expected.Name, language.IsoCode);
        Assert.AreEqual(expected.EnglishName, language.CultureName);
    }
Example #25
0
        public void Deleted_Language_Should_Not_Exist()
        {
            string    isoCode      = "en-AU";
            ILanguage languageEnAu = new LanguageBuilder()
                                     .WithCultureInfo(isoCode)
                                     .Build();

            LocalizationService.Save(languageEnAu);

            // Act
            LocalizationService.Delete(languageEnAu);
            ILanguage result = LocalizationService.GetLanguageByIsoCode(isoCode);

            // Assert
            Assert.Null(result);
        }
Example #26
0
        public void GivenLanguageWhenValidatingThenRequiredRelationsMustExist()
        {
            var builder = new LanguageBuilder(this.Session);

            builder.Build();

            Assert.True(this.Session.Derive(false).HasErrors);

            builder.WithIsoCode("XX").Build();

            Assert.True(this.Session.Derive(false).HasErrors);

            builder.WithLocalisedName(new LocalisedTextBuilder(this.Session).WithLocale(new Locales(this.Session).FindBy(M.Locale.Name, Locales.EnglishGreatBritainName)).WithText("XXX)").Build());

            Assert.False(this.Session.Derive(false).HasErrors);
        }
Example #27
0
        public void Can_Delete_Language()
        {
            ILanguage languageNbNo = new LanguageBuilder()
                                     .WithCultureInfo("nb-NO")
                                     .Build();

            LocalizationService.Save(languageNbNo, 0);
            Assert.That(languageNbNo.HasIdentity, Is.True);
            int languageId = languageNbNo.Id;

            LocalizationService.Delete(languageNbNo);

            ILanguage language = LocalizationService.GetLanguageById(languageId);

            Assert.Null(language);
        }
Example #28
0
        public void ValidLanguageTests()
        {
            var builder = new LanguageBuilder();
            var valid   = new LanguageModel("cs", "file1.cs");

            builder.AddLanguage(valid);
            valid = new LanguageModel("java", "file1.java");
            builder.AddLanguage(valid);
            valid = new LanguageModel("js", "file1.js");
            builder.AddLanguage(valid);


            Assert.AreEqual(3, builder.LanguageAttributes.Count);
            Assert.IsTrue(builder.LanguageAttributes.ContainsKey("JavaScript"));
            Assert.IsTrue(builder.LanguageAttributes.ContainsKey("C#"));
            Assert.IsTrue(builder.LanguageAttributes.ContainsKey("Java"));
        }
Example #29
0
        public void Can_Delete_Language_Used_As_Fallback()
        {
            ILanguage languageDaDk = LocalizationService.GetLanguageByIsoCode("da-DK");
            ILanguage languageNbNo = new LanguageBuilder()
                                     .WithCultureInfo("nb-NO")
                                     .WithFallbackLanguageId(languageDaDk.Id)
                                     .Build();

            LocalizationService.Save(languageNbNo, 0);
            int languageId = languageDaDk.Id;

            LocalizationService.Delete(languageDaDk);

            ILanguage language = LocalizationService.GetLanguageById(languageId);

            Assert.Null(language);
        }
        public void lvlUpTest()
        {
            var builder = new LanguageBuilder();
            var languageModel = new LanguageModel("cs", "file1.cs");
            var lang = new SimpleLanguage(languageModel);
            languageModel = new LanguageModel("cs", "file.cs");
            lang.Add(languageModel);
            languageModel = new LanguageModel("cs", "file23.cs");
            lang.Add(languageModel);
            builder.LanguageAttributes.Add("cs", lang);

            var expLang = new LanguageExperience("Teste", @".\Contents\Level\lvlUpTest.prop", "Language Points");
            expLang.AddModel(builder);

            Assert.AreEqual(2, expLang.Level);
            Assert.AreEqual(3, expLang.ExperiencePoints);
            Assert.AreEqual("Teste", expLang.Name);
        }
Example #31
0
    private void CreateDictionaryData()
    {
        var localizationService = GetRequiredService <ILocalizationService>();

        var languageNbNo = new LanguageBuilder()
                           .WithCultureInfo("nb-NO")
                           .WithCultureName("Norwegian")
                           .Build();

        localizationService.Save(languageNbNo);

        var languageEnGb = new LanguageBuilder()
                           .WithCultureInfo("en-GB")
                           .Build();

        localizationService.Save(languageEnGb);

        var parentItem = new DictionaryItem("Parent")
        {
            Key = Guid.Parse("28f2e02a-8c66-4fcd-85e3-8524d551c0d3")
        };
        var parentTranslations = new List <IDictionaryTranslation>
        {
            new DictionaryTranslation(languageNbNo, "ForelderVerdi"),
            new DictionaryTranslation(languageEnGb, "ParentValue")
        };

        parentItem.Translations = parentTranslations;
        localizationService.Save(parentItem);

        var childItem =
            new DictionaryItem(parentItem.Key, "Child")
        {
            Key = Guid.Parse("e7dba0a9-d517-4ba4-8e18-2764d392c611")
        };
        var childTranslations = new List <IDictionaryTranslation>
        {
            new DictionaryTranslation(languageNbNo, "BarnVerdi"),
            new DictionaryTranslation(languageEnGb, "ChildValue")
        };

        childItem.Translations = childTranslations;
        localizationService.Save(childItem);
    }
Example #32
0
        public void TransformPathInLanguageModel()
        {
            var test1 = @"C:\folder\file.cs";
            var test2 = @"..\folder\file2.java";
            var test3 = @"arquivo.cs";

            var model = LanguageBuilder.TransformPathToLanguageModel(test1);

            Assert.AreEqual("cs", model.Name);
            Assert.AreEqual("file.cs", model.File);

            model = LanguageBuilder.TransformPathToLanguageModel(test2);
            Assert.AreEqual("java", model.Name);
            Assert.AreEqual("file2.java", model.File);

            model = LanguageBuilder.TransformPathToLanguageModel(test3);
            Assert.AreEqual("cs", model.Name);
            Assert.AreEqual("arquivo.cs", model.File);
        }
Example #33
0
        public void Sync()
        {
            var englishNameByCountry = new Dictionary<Country, string>();
            var englishNameByCurrency = new Dictionary<Currency, string>();
            var englishNameByLanguage = new Dictionary<Language, string>();

            var countryByIsoCode = new Dictionary<string, Country>();
            foreach (Country country in new Countries(this.Session).Extent())
            {
                countryByIsoCode.Add(country.IsoCode, country);
            }

            var languageByIsoCode = new Dictionary<string, Language>();
            foreach (Language language in new Languages(this.Session).Extent())
            {
                languageByIsoCode.Add(language.IsoCode, language);
            }

            var currencyByIsoCode = new Dictionary<string, Currency>();
            foreach (Currency currency in new Currencies(this.Session).Extent())
            {
                currencyByIsoCode.Add(currency.IsoCode, currency);
            }

            var localeByName = new Dictionary<string, Locale>();
            foreach (Locale locale in new Locales(this.Session).Extent())
            {
                localeByName.Add(locale.Name, locale);
            }

            foreach (var cultureInfo in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
            {
                if (cultureInfo.LCID != 127)
                {
                    var languageIsoCode = cultureInfo.TwoLetterISOLanguageName.ToLower();
                    Language language;
                    if (!languageByIsoCode.TryGetValue(languageIsoCode, out language))
                    {
                        language = new LanguageBuilder(this.Session)
                            .WithIsoCode(languageIsoCode)
                            .Build();

                        languageByIsoCode.Add(languageIsoCode, language);
                        englishNameByLanguage.Add(language, cultureInfo.Parent.EnglishName);
                    }

                    Country country = null;
                    var regionInfo = new RegionInfo(cultureInfo.LCID);

                    // Should be upper, but just in case ...
                    var countryIsoCode = regionInfo.TwoLetterISORegionName.ToUpper();

                    // sometimes a 2 letter code is a 3 digit code ...
                    if (countryIsoCode.Length == 2)
                    {
                        if (!countryByIsoCode.TryGetValue(countryIsoCode, out country))
                        {
                            country = new CountryBuilder(this.Session).WithIsoCode(countryIsoCode).Build();

                            englishNameByCountry.Add(country, regionInfo.EnglishName);
                            countryByIsoCode.Add(countryIsoCode, country);
                        }

                        var currencyIsoCode = regionInfo.ISOCurrencySymbol.ToUpper();
                        Currency currency;
                        if (!currencyByIsoCode.TryGetValue(currencyIsoCode, out currency))
                        {
                            currency = new CurrencyBuilder(this.Session).WithIsoCode(currencyIsoCode).WithSymbol(regionInfo.CurrencySymbol).Build();

                            currencyByIsoCode.Add(currencyIsoCode, currency);
                            englishNameByCurrency.Add(currency, regionInfo.CurrencyEnglishName);
                        }

                        if (country != null)
                        {
                            country.Currency = currency;
                        }
                    }

                    var localeIdentifier = cultureInfo.Name;

                    Locale locale;
                    if (!localeByName.TryGetValue(localeIdentifier, out locale))
                    {
                        if (country != null && language != null)
                        {
                            locale = new LocaleBuilder(this.Session)
                                .WithName(cultureInfo.Name)
                                .WithCountry(country)
                                .WithLanguage(language)
                                .Build();

                            localeByName.Add(localeIdentifier, locale);
                        }
                    }
                    else
                    {
                        locale.Name = cultureInfo.Name;
                        locale.Language = language;
                        locale.Country = country;
                    }
                }
            }

            var englishLocale = localeByName[EnglishGreatBritainName];

            foreach (var country in countryByIsoCode.Values)
            {
                if (englishNameByCountry.ContainsKey(country))
                {
                    var enlgishName = englishNameByCountry[country];

                    var englishCountryName = new LocalisedTextBuilder(this.Session)
                        .WithText(enlgishName)
                        .WithLocale(englishLocale)
                        .Build();

                    country.Name = enlgishName;
                    country.AddLocalisedName(englishCountryName);
                }
            }

            foreach (var currency in currencyByIsoCode.Values)
            {
                if (englishNameByCurrency.ContainsKey(currency))
                {
                    var englishName = englishNameByCurrency[currency];

                    var englishCurrencyName = new LocalisedTextBuilder(this.Session)
                        .WithText(englishName)
                        .WithLocale(englishLocale)
                        .Build();

                    currency.Name = englishName;
                    currency.AddLocalisedName(englishCurrencyName);
                }
            }

            foreach (var language in languageByIsoCode.Values)
            {
                if (englishNameByLanguage.ContainsKey(language))
                {
                    var englishName = englishNameByLanguage[language];

                    var englishLanguageName = new LocalisedTextBuilder(this.Session)
                        .WithText(englishName)
                        .WithLocale(englishLocale)
                        .Build();

                    language.Name = englishName;
                    language.AddLocalisedName(englishLanguageName);
                }
            }
        }