Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/SIL.Machine/Corpora/ParatextProjectSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public ParatextProjectSettings(
string biblicalTermsFileName,
string languageCode,
string translationType,
string visibility,
string parentGuid = null,
string parentName = null,
ParatextProjectSettings parentSettings = null
Expand All @@ -45,6 +46,7 @@ public ParatextProjectSettings(
ParentGuid = parentGuid;
ParentName = parentName;
_parent = parentSettings;
Visibility = visibility;
}

public string Guid { get; }
Expand All @@ -63,6 +65,7 @@ public ParatextProjectSettings(
public string TranslationType { get; }
public string ParentGuid { get; }
public string ParentName { get; }
public string Visibility { get; }
public ParatextProjectSettings Parent
{
get { return _parent; }
Expand Down
35 changes: 19 additions & 16 deletions src/SIL.Machine/Corpora/ParatextProjectSettingsParserBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -131,23 +131,26 @@ public ParatextProjectSettings Parse()
parentGuid = translationInfoSettingParts[2] != string.Empty ? translationInfoSettingParts[2] : null;
}

string visibility = settingsDoc.Root.Element("Visibility")?.Value;

var settings = new ParatextProjectSettings(
guid,
name,
fullName,
encoding,
versification,
stylesheet,
prefix,
form,
suffix,
parts[0],
parts[1],
parts[2],
languageCode,
translationType,
parentGuid,
parentName
guid: guid,
name: name,
fullName: fullName,
encoding: encoding,
versification: versification,
stylesheet: stylesheet,
fileNamePrefix: prefix,
fileNameForm: form,
fileNameSuffix: suffix,
biblicalTermsListType: parts[0],
biblicalTermsProjectName: parts[1],
biblicalTermsFileName: parts[2],
languageCode: languageCode,
translationType: translationType,
visibility: visibility,
parentGuid: parentGuid,
parentName: parentName
);

if (_parentParatextProjectSettings != null && settings.HasParent)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,35 @@
using NUnit.Framework;
using SIL.Scripture;

namespace SIL.Machine.Corpora;

public class FileParatextProjectSettingsParserTests
{
[Test]
public void Parse()
{
FileParatextProjectSettingsParser parser = new(CorporaTestHelpers.UsfmTestProjectPath);
ParatextProjectSettings settings = parser.Parse();

using (Assert.EnterMultipleScope())
{
Assert.That(settings.Guid, Is.EqualTo("a7e0b3ce0200736062f9f810a444dbfbe64aca35"));
Assert.That(settings.Name, Is.EqualTo("Tes"));
Assert.That(settings.FullName, Is.EqualTo("Test"));
Assert.That(settings.Encoding, Is.EqualTo(System.Text.Encoding.UTF8));
Assert.That(settings.Versification.BaseVersification, Is.EqualTo(ScrVers.English));
Assert.That(settings.FileNamePrefix, Is.EqualTo(string.Empty));
Assert.That(settings.FileNameForm, Is.EqualTo("41MAT"));
Assert.That(settings.FileNameSuffix, Is.EqualTo("Tes.SFM"));
Assert.That(settings.BiblicalTermsListType, Is.EqualTo("Project"));
Assert.That(settings.BiblicalTermsProjectName, Is.EqualTo("Tes"));
Assert.That(settings.BiblicalTermsFileName, Is.EqualTo("ProjectBiblicalTerms.xml"));
Assert.That(settings.LanguageCode, Is.EqualTo("en"));
Assert.That(settings.TranslationType, Is.EqualTo("Standard"));
Assert.That(settings.Visibility, Is.EqualTo("Public"));
}
}

[Test]
public void Parse_CustomStylesheet()
{
Expand All @@ -19,16 +45,18 @@ public void Parse_ParentProject()
{
FileParatextProjectSettingsParser parser = new(CorporaTestHelpers.UsfmTestProjectPath);
ParatextProjectSettings settings = parser.Parse();

Assert.That(settings.TranslationType, Is.EqualTo("Standard"));
Assert.That(settings.Visibility, Is.EqualTo("Public"));

Assert.That(settings.HasParent);
Assert.That(settings.IsDaughterProjectOf(settings));
Assert.That(settings.TranslationType, Is.EqualTo("Standard"));
Assert.That(settings.Parent, Is.Null);

parser = new(CorporaTestHelpers.UsfmTestProjectPath, parentSettings: settings);
settings = parser.Parse();
Assert.That(settings.HasParent);
Assert.That(settings.IsDaughterProjectOf(settings));
Assert.That(settings.TranslationType, Is.EqualTo("Standard"));
Assert.That(settings.Parent, Is.Not.Null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,8 @@ private static ParatextProjectSettings CreateSettings(string fileNameForm)
"",
"BiblicalTerms.xml",
"en",
"Standard"
"Standard",
"Public"
);
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,37 @@
using System.IO.Compression;
using NUnit.Framework;
using SIL.ObjectModel;
using SIL.Scripture;

namespace SIL.Machine.Corpora;

public class ZipParatextProjectSettingsParserTests
{
[Test]
public void Parse()
{
using var env = new TestEnvironment();
ParatextProjectSettings settings = env.Parser.Parse();

using (Assert.EnterMultipleScope())
{
Assert.That(settings.Guid, Is.EqualTo("a7e0b3ce0200736062f9f810a444dbfbe64aca35"));
Assert.That(settings.Name, Is.EqualTo("Tes"));
Assert.That(settings.FullName, Is.EqualTo("Test"));
Assert.That(settings.Encoding, Is.EqualTo(System.Text.Encoding.UTF8));
Assert.That(settings.Versification.BaseVersification, Is.EqualTo(ScrVers.English));
Assert.That(settings.FileNamePrefix, Is.EqualTo(string.Empty));
Assert.That(settings.FileNameForm, Is.EqualTo("41MAT"));
Assert.That(settings.FileNameSuffix, Is.EqualTo("Tes.SFM"));
Assert.That(settings.BiblicalTermsListType, Is.EqualTo("Project"));
Assert.That(settings.BiblicalTermsProjectName, Is.EqualTo("Tes"));
Assert.That(settings.BiblicalTermsFileName, Is.EqualTo("ProjectBiblicalTerms.xml"));
Assert.That(settings.LanguageCode, Is.EqualTo("en"));
Assert.That(settings.TranslationType, Is.EqualTo("Standard"));
Assert.That(settings.Visibility, Is.EqualTo("Public"));
}
}

[Test]
public void Parse_CustomStylesheet()
{
Expand All @@ -21,16 +47,15 @@ public void Parse_ParentProject()
{
using var env = new TestEnvironment();
ParatextProjectSettings settings = env.Parser.Parse();

Assert.That(settings.HasParent);
Assert.That(settings.IsDaughterProjectOf(settings));
Assert.That(settings.TranslationType, Is.EqualTo("Standard"));
Assert.That(settings.Parent, Is.Null);

env.Parser = new ZipParatextProjectSettingsParser(env.Archive, settings);
settings = env.Parser.Parse();
Assert.That(settings.HasParent);
Assert.That(settings.IsDaughterProjectOf(settings));
Assert.That(settings.TranslationType, Is.EqualTo("Standard"));
Assert.That(settings.Parent, Is.Not.Null);
}

Expand Down
Loading