public void ReplacePOSGuidsWithGoldEticGuids_WrongPosGuidChangedToMatchStandard() { // This test will grab the first part of speach from the project and delete it // it then sets up a new item which which matches the id of that first part of speech and // makes sure that the guid for the new one is swapped back to the standard. // Note: This test assumes our POS.xml template has correct guids var posList = Cache.LangProject.PartsOfSpeechOA; var firstDefaultPos = (IPartOfSpeech)posList.PossibilitiesOS[0]; posList.PossibilitiesOS.Remove(firstDefaultPos); var goldGuid = firstDefaultPos.Guid; Assert.Throws <KeyNotFoundException>(() => Cache.ServiceLocator.ObjectRepository.GetObject(goldGuid)); var myNewPos = Cache.ServiceLocator.GetInstance <IPartOfSpeechFactory>().Create(); posList.PossibilitiesOS.Insert(0, myNewPos); myNewPos.Name.CopyAlternatives(firstDefaultPos.Name); myNewPos.CatalogSourceId = firstDefaultPos.CatalogSourceId; var nonStandardGuid = myNewPos.Guid; // SUT Assert.That(GoldEticGuidFixer.ReplacePOSGuidsWithGoldEticGuids(Cache), Is.True); Assert.Throws <KeyNotFoundException>(() => Cache.ServiceLocator.ObjectRepository.GetObject(nonStandardGuid)); Assert.NotNull(Cache.ServiceLocator.ObjectRepository.GetObject(goldGuid)); }
public void ReplacePOSGuidsWithGoldEticGuids_EntriesUsingChangingPosAreNotNegativelyAffected() { var posList = Cache.LangProject.PartsOfSpeechOA; var firstDefaultPos = (IPartOfSpeech)posList.PossibilitiesOS[0]; var originalText = firstDefaultPos.Name.BestVernacularAnalysisAlternative.Text; posList.PossibilitiesOS.Remove(firstDefaultPos); var servLoc = Cache.ServiceLocator; var myNewPos = servLoc.GetInstance <IPartOfSpeechFactory>().Create(); posList.PossibilitiesOS.Insert(0, myNewPos); myNewPos.Name.CopyAlternatives(firstDefaultPos.Name); myNewPos.CatalogSourceId = firstDefaultPos.CatalogSourceId; var entry = servLoc.GetInstance <ILexEntryFactory>().Create(); var sense = servLoc.GetInstance <ILexSenseFactory>().Create(); entry.SensesOS.Add(sense); var msa = servLoc.GetInstance <IMoStemMsaFactory>().Create(); entry.MorphoSyntaxAnalysesOC.Add(msa); sense.MorphoSyntaxAnalysisRA = msa; msa.PartOfSpeechRA = myNewPos; // SUT Assert.That(GoldEticGuidFixer.ReplacePOSGuidsWithGoldEticGuids(Cache), Is.True); Assert.NotNull(msa.PartOfSpeechRA); Assert.AreEqual(originalText, msa.PartOfSpeechRA.Name.BestVernacularAnalysisAlternative.Text); }
public void ReplacePOSGuidsWithGoldEticGuids_CustomPosItemsAreUnaffected() { var posList = Cache.LangProject.PartsOfSpeechOA; var myNewPos = Cache.ServiceLocator.GetInstance <IPartOfSpeechFactory>().Create(); var wsEn = Cache.WritingSystemFactory.GetWsFromStr("en"); posList.PossibilitiesOS.Add(myNewPos); myNewPos.Name.set_String(wsEn, Cache.TsStrFactory.MakeString("Mine", wsEn)); var myNewPosGuid = myNewPos.Guid; // SUT Assert.That(GoldEticGuidFixer.ReplacePOSGuidsWithGoldEticGuids(Cache), Is.False); Assert.AreEqual(myNewPos, Cache.ServiceLocator.GetObject(myNewPosGuid), "Guid should not have been replaced"); }
public void ReplacePOSGuidsWithGoldEticGuids_WrongPosGuidInWrongPlaceGuidChangedToMatchStandard() { // Note: This test assumes our POS.xml template has correct guids var posList = Cache.LangProject.PartsOfSpeechOA; var firstDefaultPos = (IPartOfSpeech)posList.PossibilitiesOS[0]; posList.PossibilitiesOS.Remove(firstDefaultPos); var secondDefaultPos = (IPartOfSpeech)posList.PossibilitiesOS[0]; var goldGuid = firstDefaultPos.Guid; Assert.Throws <KeyNotFoundException>(() => Cache.ServiceLocator.ObjectRepository.GetObject(goldGuid)); var myNewPos = Cache.ServiceLocator.GetInstance <IPartOfSpeechFactory>().Create(); // Insert the item with a wrong guid in an unexpected location secondDefaultPos.SubPossibilitiesOS.Insert(0, myNewPos); myNewPos.Name.CopyAlternatives(firstDefaultPos.Name); myNewPos.CatalogSourceId = firstDefaultPos.CatalogSourceId; var nonStandardGuid = myNewPos.Guid; // SUT Assert.That(GoldEticGuidFixer.ReplacePOSGuidsWithGoldEticGuids(Cache), Is.True); Assert.Throws <KeyNotFoundException>(() => Cache.ServiceLocator.ObjectRepository.GetObject(nonStandardGuid)); Assert.NotNull(Cache.ServiceLocator.ObjectRepository.GetObject(goldGuid)); }
public void ReplacePOSGuidsWithGoldEticGuids_NoChangesReturnsFalse() { Assert.That(GoldEticGuidFixer.ReplacePOSGuidsWithGoldEticGuids(Cache), Is.False); }