Conflicts: build/UmbracoVersion.txt src/Umbraco.Core/ApplicationContext.cs src/Umbraco.Core/Configuration/UmbracoConfig.cs src/Umbraco.Core/Configuration/UmbracoVersion.cs src/Umbraco.Core/CoreBootManager.cs src/Umbraco.Core/DatabaseContext.cs src/Umbraco.Core/Dictionary/CultureDictionaryFactoryResolver.cs src/Umbraco.Core/Manifest/ManifestParser.cs src/Umbraco.Core/Models/DataTypeDefinition.cs src/Umbraco.Core/ObjectResolution/ApplicationEventsResolver.cs src/Umbraco.Core/Persistence/DatabaseSchemaHelper.cs src/Umbraco.Core/Persistence/Factories/MemberTypeFactory.cs src/Umbraco.Core/Persistence/Migrations/MigrationBase.cs src/Umbraco.Core/Persistence/Migrations/MigrationExpressionBase.cs src/Umbraco.Core/Persistence/Migrations/MigrationResolver.cs src/Umbraco.Core/Persistence/Migrations/MigrationRunner.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/AlterSyntaxBuilder.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Column/AlterColumnBuilder.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterColumnExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterDefaultConstraintExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterTableExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Table/AlterTableBuilder.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Create/Column/CreateColumnBuilder.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Create/CreateBuilder.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Create/Expressions/CreateConstraintExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Create/Expressions/CreateTableExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Create/Table/CreateTableBuilder.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/DeleteBuilder.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteColumnExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteConstraintExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteDataExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteDefaultConstraintExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteForeignKeyExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteIndexExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteTableExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Execute/ExecuteBuilder.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Execute/Expressions/ExecuteCodeStatementExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Execute/Expressions/ExecuteSqlStatementExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateColumnExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateForeignKeyExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateIndexExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Insert/Expressions/InsertDataExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Insert/InsertBuilder.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Rename/Expressions/RenameColumnExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Rename/Expressions/RenameTableExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Rename/RenameBuilder.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Update/Expressions/UpdateDataExpression.cs src/Umbraco.Core/Persistence/Migrations/Syntax/Update/UpdateBuilder.cs src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AddIndexToCmsMacroTable.cs src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeZero/MigrateAndRemoveTemplateMasterColumn.cs src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs src/Umbraco.Core/Persistence/Repositories/ContentTypeRepository.cs src/Umbraco.Core/Persistence/Repositories/DataTypeDefinitionRepository.cs src/Umbraco.Core/Persistence/Repositories/DictionaryRepository.cs src/Umbraco.Core/Persistence/Repositories/DomainRepository.cs src/Umbraco.Core/Persistence/Repositories/LanguageRepository.cs src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs src/Umbraco.Core/Persistence/Repositories/MediaTypeRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs src/Umbraco.Core/Persistence/Repositories/RecycleBinRepository.cs src/Umbraco.Core/Persistence/Repositories/ServerRegistrationRepository.cs src/Umbraco.Core/Persistence/Repositories/TagRepository.cs src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs src/Umbraco.Core/Persistence/RepositoryFactory.cs src/Umbraco.Core/Persistence/UmbracoDatabase.cs src/Umbraco.Core/PropertyEditors/IPropertyEditorValueConverter.cs src/Umbraco.Core/PropertyEditors/PropertyEditor.cs src/Umbraco.Core/PropertyEditors/PropertyEditorResolver.cs src/Umbraco.Core/Services/ContentService.cs src/Umbraco.Core/Services/ContentTypeService.cs src/Umbraco.Core/Services/DataTypeService.cs src/Umbraco.Core/Services/EntityService.cs src/Umbraco.Core/Services/LocalizationService.cs src/Umbraco.Core/Services/MacroService.cs src/Umbraco.Core/Services/MediaService.cs src/Umbraco.Core/Services/MemberGroupService.cs src/Umbraco.Core/Services/MemberService.cs src/Umbraco.Core/Services/MemberTypeService.cs src/Umbraco.Core/Services/PackagingService.cs src/Umbraco.Core/Services/ServerRegistrationService.cs src/Umbraco.Core/Services/ServiceContext.cs src/Umbraco.Core/Services/TagService.cs src/Umbraco.Core/Services/UserService.cs src/Umbraco.Core/Strings/DefaultShortStringHelper.cs src/Umbraco.Core/Sync/ConfigServerRegistrar.cs src/Umbraco.Core/Sync/DatabaseServerMessenger.cs src/Umbraco.Core/Umbraco.Core.csproj src/Umbraco.Core/UmbracoApplicationBase.cs src/Umbraco.Core/packages.config src/Umbraco.Tests/BootManagers/CoreBootManagerTests.cs src/Umbraco.Tests/Macros/MacroTests.cs src/Umbraco.Tests/Manifest/ManifestParserTests.cs src/Umbraco.Tests/Migrations/FindingMigrationsTest.cs src/Umbraco.Tests/Migrations/MigrationRunnerTests.cs src/Umbraco.Tests/Migrations/Stubs/FiveZeroMigration.cs src/Umbraco.Tests/Migrations/Stubs/FourElevenMigration.cs src/Umbraco.Tests/Migrations/Stubs/SixZeroMigration1.cs src/Umbraco.Tests/Migrations/Stubs/SixZeroMigration2.cs src/Umbraco.Tests/Migrations/TargetVersionSixthMigrationsTest.cs src/Umbraco.Tests/Migrations/Upgrades/BaseUpgradeTest.cs src/Umbraco.Tests/Migrations/Upgrades/SqlCeDataUpgradeTest.cs src/Umbraco.Tests/Mvc/UmbracoViewPageTests.cs src/Umbraco.Tests/Persistence/BaseTableByTableTest.cs src/Umbraco.Tests/Persistence/DatabaseContextTests.cs src/Umbraco.Tests/Persistence/Mappers/PropertyGroupMapperTest.cs src/Umbraco.Tests/Persistence/MySqlDatabaseCreationTest.cs src/Umbraco.Tests/Persistence/Querying/ContentTypeRepositorySqlClausesTest.cs src/Umbraco.Tests/Persistence/Querying/ContentTypeSqlMappingTests.cs src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/DataTypeDefinitionRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/DomainRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/PublicAccessRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/ServerRegistrationRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs src/Umbraco.Tests/Persistence/Repositories/TemplateRepositoryTest.cs src/Umbraco.Tests/Persistence/SyntaxProvider/SqlCeSyntaxProviderTests.cs src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs src/Umbraco.Tests/Services/ContentServiceTests.cs src/Umbraco.Tests/Services/ThreadSafetyServiceTest.cs src/Umbraco.Tests/Strings/DefaultShortStringHelperTests.cs src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs src/Umbraco.Tests/TestHelpers/BaseDatabaseTest.cs src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs src/Umbraco.Tests/Umbraco.Tests.csproj src/Umbraco.Web.UI/Umbraco.Web.UI.csproj src/Umbraco.Web.UI/config/ClientDependency.config src/Umbraco.Web.UI/packages.config src/Umbraco.Web.UI/umbraco/controls/ContentTypeControlNew.ascx.cs src/Umbraco.Web.UI/umbraco/plugins/tinymce3/insertImage.aspx src/Umbraco.Web.UI/umbraco/settings/EditNodeTypeNew.aspx.cs src/Umbraco.Web/BatchedDatabaseServerMessenger.cs src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs src/Umbraco.Web/Cache/DataTypeCacheRefresher.cs src/Umbraco.Web/Cache/DistributedCacheExtensions.cs src/Umbraco.Web/Editors/AuthenticationController.cs src/Umbraco.Web/Editors/BackOfficeController.cs src/Umbraco.Web/Install/InstallSteps/DatabaseInstallStep.cs src/Umbraco.Web/Install/InstallSteps/DatabaseUpgradeStep.cs src/Umbraco.Web/Media/ThumbnailProviders/ThumbnailProvidersResolver.cs src/Umbraco.Web/Mvc/DefaultRenderMvcControllerResolver.cs src/Umbraco.Web/PropertyEditors/FileUploadPropertyEditor.cs src/Umbraco.Web/PropertyEditors/FolderBrowserPropertyEditor.cs src/Umbraco.Web/PropertyEditors/GridPropertyEditor.cs src/Umbraco.Web/PropertyEditors/ImageCropperPropertyEditor.cs src/Umbraco.Web/Routing/NotFoundHandlerHelper.cs src/Umbraco.Web/Trees/MediaTreeController.cs src/Umbraco.Web/Trees/MemberTreeController.cs src/Umbraco.Web/Umbraco.Web.csproj src/Umbraco.Web/UmbracoApplication.cs src/Umbraco.Web/UmbracoModule.cs src/Umbraco.Web/WebBootManager.cs src/Umbraco.Web/packages.config src/Umbraco.Web/umbraco.presentation/content.cs src/Umbraco.Web/umbraco.presentation/keepAliveService.cs src/Umbraco.Web/umbraco.presentation/macro.cs src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadDictionary.cs src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentControl.cs src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/controls/Images/ImageViewer.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/controls/Images/UploadMediaImage.ascx.cs src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/imageViewer.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/rollBack.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMemberType.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/plugins/tinymce3/insertImage.aspx src/Umbraco.Web/umbraco.presentation/umbraco/settings/EditNodeTypeNew.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/MediaExtensions.cs src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/uQuery.cs src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/webService.asmx.cs src/Umbraco.Web/umbraco.presentation/umbraco/webservices/MediaUploader.ashx.cs src/UmbracoExamine/UmbracoContentIndexer.cs src/UmbracoExamine/UmbracoMemberIndexer.cs src/umbraco.MacroEngines/RazorCore/UmbracoCultureDictionary.cs src/umbraco.MacroEngines/RazorDynamicNode/DynamicNode.cs src/umbraco.MacroEngines/RazorDynamicNode/ExtensionMethods.cs src/umbraco.MacroEngines/app.config src/umbraco.MacroEngines/packages.config src/umbraco.MacroEngines/umbraco.MacroEngines.csproj src/umbraco.businesslogic/UmbracoSettings.cs src/umbraco.cms/businesslogic/Content.cs src/umbraco.cms/businesslogic/datatype/DataTypeDefinition.cs src/umbraco.cms/businesslogic/datatype/DefaultPreValueEditor.cs src/umbraco.cms/businesslogic/datatype/FileHandlerData.cs src/umbraco.cms/businesslogic/translation/Translation.cs src/umbraco.cms/businesslogic/web/Document.cs src/umbraco.cms/packages.config src/umbraco.editorControls/DefaultPrevalueEditor.cs src/umbraco.editorControls/MultiNodeTreePicker/MNTPResources.Designer.cs src/umbraco.editorControls/MultiNodeTreePicker/MNTPResources.resx src/umbraco.editorControls/MultiNodeTreePicker/MNTP_DataType.cs src/umbraco.editorControls/app.config src/umbraco.editorControls/macrocontainer/PrevalueEditor.cs src/umbraco.editorControls/packages.config src/umbraco.editorControls/textfieldmultiple/textfieldMultipleDataType.cs src/umbraco.editorControls/umbraco.editorControls.csproj src/umbraco.editorControls/uploadfield/uploadField.cs src/umbraco.editorControls/userControlWrapper/usercontrolPrevalueEditor.cs src/umbraco.providers/app.config
408 lines
16 KiB
C#
408 lines
16 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Moq;
|
|
using NUnit.Framework;
|
|
using Umbraco.Core;
|
|
using Umbraco.Core.Logging;
|
|
using Umbraco.Core.Models;
|
|
using Umbraco.Core.Persistence;
|
|
|
|
using Umbraco.Core.Persistence.Querying;
|
|
using Umbraco.Core.Persistence.Repositories;
|
|
using Umbraco.Core.Persistence.SqlSyntax;
|
|
using Umbraco.Core.Persistence.UnitOfWork;
|
|
using Umbraco.Tests.TestHelpers;
|
|
|
|
namespace Umbraco.Tests.Persistence.Repositories
|
|
{
|
|
[DatabaseTestBehavior(DatabaseBehavior.NewDbFileAndSchemaPerTest)]
|
|
[TestFixture]
|
|
public class DictionaryRepositoryTest : BaseDatabaseFactoryTest
|
|
{
|
|
[SetUp]
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
|
|
CreateTestData();
|
|
}
|
|
|
|
private DictionaryRepository CreateRepository(IDatabaseUnitOfWork unitOfWork, out LanguageRepository languageRepository)
|
|
{
|
|
languageRepository = new LanguageRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax, MappingResolver);
|
|
var dictionaryRepository = new DictionaryRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), new SqlCeSyntaxProvider(), languageRepository, MappingResolver);
|
|
return dictionaryRepository;
|
|
}
|
|
|
|
|
|
[Test]
|
|
public void Can_Perform_Get_By_Key_On_DictionaryRepository()
|
|
{
|
|
// Arrange
|
|
var provider = new PetaPocoUnitOfWorkProvider(Logger);
|
|
var unitOfWork = provider.GetUnitOfWork();
|
|
LanguageRepository languageRepository;
|
|
using (var repository = CreateRepository(unitOfWork, out languageRepository))
|
|
{
|
|
var dictionaryItem = (IDictionaryItem)new DictionaryItem("Testing1235")
|
|
{
|
|
Translations = new List<IDictionaryTranslation>
|
|
{
|
|
new DictionaryTranslation(ServiceContext.LocalizationService.GetLanguageByCultureCode("en-US"), "Hello world")
|
|
}
|
|
};
|
|
|
|
repository.AddOrUpdate(dictionaryItem);
|
|
unitOfWork.Commit();
|
|
|
|
//re-get
|
|
dictionaryItem = repository.Get("Testing1235");
|
|
|
|
// Assert
|
|
Assert.That(dictionaryItem, Is.Not.Null);
|
|
Assert.That(dictionaryItem.ItemKey, Is.EqualTo("Testing1235"));
|
|
Assert.That(dictionaryItem.Translations.Any(), Is.True);
|
|
Assert.That(dictionaryItem.Translations.Any(x => x == null), Is.False);
|
|
Assert.That(dictionaryItem.Translations.First().Value, Is.EqualTo("Hello world"));
|
|
}
|
|
|
|
}
|
|
|
|
[Test]
|
|
public void Can_Perform_Get_By_UniqueId_On_DictionaryRepository()
|
|
{
|
|
// Arrange
|
|
var provider = new PetaPocoUnitOfWorkProvider(Logger);
|
|
var unitOfWork = provider.GetUnitOfWork();
|
|
LanguageRepository languageRepository;
|
|
using (var repository = CreateRepository(unitOfWork, out languageRepository))
|
|
{
|
|
var dictionaryItem = (IDictionaryItem)new DictionaryItem("Testing1235")
|
|
{
|
|
Translations = new List<IDictionaryTranslation>
|
|
{
|
|
new DictionaryTranslation(ServiceContext.LocalizationService.GetLanguageByCultureCode("en-US"), "Hello world")
|
|
}
|
|
};
|
|
|
|
repository.AddOrUpdate(dictionaryItem);
|
|
unitOfWork.Commit();
|
|
|
|
//re-get
|
|
dictionaryItem = repository.Get(dictionaryItem.Key);
|
|
|
|
// Assert
|
|
Assert.That(dictionaryItem, Is.Not.Null);
|
|
Assert.That(dictionaryItem.ItemKey, Is.EqualTo("Testing1235"));
|
|
Assert.That(dictionaryItem.Translations.Any(), Is.True);
|
|
Assert.That(dictionaryItem.Translations.Any(x => x == null), Is.False);
|
|
Assert.That(dictionaryItem.Translations.First().Value, Is.EqualTo("Hello world"));
|
|
}
|
|
|
|
}
|
|
|
|
[Test]
|
|
public void Can_Perform_Get_On_DictionaryRepository()
|
|
{
|
|
// Arrange
|
|
var provider = new PetaPocoUnitOfWorkProvider(Logger);
|
|
var unitOfWork = provider.GetUnitOfWork();
|
|
LanguageRepository languageRepository;
|
|
using (var repository = CreateRepository(unitOfWork, out languageRepository))
|
|
{
|
|
var dictionaryItem = (IDictionaryItem)new DictionaryItem("Testing1235")
|
|
{
|
|
Translations = new List<IDictionaryTranslation>
|
|
{
|
|
new DictionaryTranslation(ServiceContext.LocalizationService.GetLanguageByCultureCode("en-US"), "Hello world")
|
|
}
|
|
};
|
|
|
|
repository.AddOrUpdate(dictionaryItem);
|
|
unitOfWork.Commit();
|
|
|
|
//re-get
|
|
dictionaryItem = repository.Get(dictionaryItem.Id);
|
|
|
|
|
|
// Assert
|
|
Assert.That(dictionaryItem, Is.Not.Null);
|
|
Assert.That(dictionaryItem.ItemKey, Is.EqualTo("Testing1235"));
|
|
Assert.That(dictionaryItem.Translations.Any(), Is.True);
|
|
Assert.That(dictionaryItem.Translations.Any(x => x == null), Is.False);
|
|
Assert.That(dictionaryItem.Translations.First().Value, Is.EqualTo("Hello world"));
|
|
}
|
|
|
|
}
|
|
|
|
[Test]
|
|
public void Can_Perform_Get_On_DictionaryRepository_When_No_Language_Assigned()
|
|
{
|
|
// Arrange
|
|
var provider = new PetaPocoUnitOfWorkProvider(Logger);
|
|
var unitOfWork = provider.GetUnitOfWork();
|
|
LanguageRepository languageRepository;
|
|
using (var repository = CreateRepository(unitOfWork, out languageRepository))
|
|
{
|
|
var dictionaryItem = (IDictionaryItem) new DictionaryItem("Testing1235");
|
|
|
|
repository.AddOrUpdate(dictionaryItem);
|
|
unitOfWork.Commit();
|
|
|
|
//re-get
|
|
dictionaryItem = repository.Get(dictionaryItem.Id);
|
|
|
|
|
|
// Assert
|
|
Assert.That(dictionaryItem, Is.Not.Null);
|
|
Assert.That(dictionaryItem.ItemKey, Is.EqualTo("Testing1235"));
|
|
Assert.That(dictionaryItem.Translations.Any(), Is.False);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
[Test]
|
|
public void Can_Perform_GetAll_On_DictionaryRepository()
|
|
{
|
|
// Arrange
|
|
var provider = new PetaPocoUnitOfWorkProvider(Logger);
|
|
var unitOfWork = provider.GetUnitOfWork();
|
|
LanguageRepository languageRepository;
|
|
using (var repository = CreateRepository(unitOfWork, out languageRepository))
|
|
{
|
|
|
|
// Act
|
|
var dictionaryItem = repository.Get(1);
|
|
var dictionaryItems = repository.GetAll();
|
|
|
|
// Assert
|
|
Assert.That(dictionaryItems, Is.Not.Null);
|
|
Assert.That(dictionaryItems.Any(), Is.True);
|
|
Assert.That(dictionaryItems.Any(x => x == null), Is.False);
|
|
Assert.That(dictionaryItems.Count(), Is.EqualTo(2));
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void Can_Perform_GetAll_With_Params_On_DictionaryRepository()
|
|
{
|
|
// Arrange
|
|
var provider = new PetaPocoUnitOfWorkProvider(Logger);
|
|
var unitOfWork = provider.GetUnitOfWork();
|
|
LanguageRepository languageRepository;
|
|
using (var repository = CreateRepository(unitOfWork, out languageRepository))
|
|
{
|
|
|
|
// Act
|
|
var dictionaryItems = repository.GetAll(1, 2);
|
|
|
|
// Assert
|
|
Assert.That(dictionaryItems, Is.Not.Null);
|
|
Assert.That(dictionaryItems.Any(), Is.True);
|
|
Assert.That(dictionaryItems.Any(x => x == null), Is.False);
|
|
Assert.That(dictionaryItems.Count(), Is.EqualTo(2));
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void Can_Perform_GetByQuery_On_DictionaryRepository()
|
|
{
|
|
// Arrange
|
|
var provider = new PetaPocoUnitOfWorkProvider(Logger);
|
|
var unitOfWork = provider.GetUnitOfWork();
|
|
LanguageRepository languageRepository;
|
|
using (var repository = CreateRepository(unitOfWork, out languageRepository))
|
|
{
|
|
|
|
// Act
|
|
var query = new Query<IDictionaryItem>(SqlSyntax, MappingResolver).Where(x => x.ItemKey == "Article");
|
|
var result = repository.GetByQuery(query);
|
|
|
|
// Assert
|
|
Assert.That(result, Is.Not.Null);
|
|
Assert.That(result.Any(), Is.True);
|
|
Assert.That(result.FirstOrDefault().ItemKey, Is.EqualTo("Article"));
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void Can_Perform_Count_On_DictionaryRepository()
|
|
{
|
|
// Arrange
|
|
var provider = new PetaPocoUnitOfWorkProvider(Logger);
|
|
var unitOfWork = provider.GetUnitOfWork();
|
|
LanguageRepository languageRepository;
|
|
using (var repository = CreateRepository(unitOfWork, out languageRepository))
|
|
{
|
|
|
|
// Act
|
|
var query = new Query<IDictionaryItem>(SqlSyntax, MappingResolver).Where(x => x.ItemKey.StartsWith("Read"));
|
|
var result = repository.Count(query);
|
|
|
|
// Assert
|
|
Assert.That(result, Is.EqualTo(1));
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void Can_Perform_Add_On_DictionaryRepository()
|
|
{
|
|
// Arrange
|
|
var provider = new PetaPocoUnitOfWorkProvider(Logger);
|
|
var unitOfWork = provider.GetUnitOfWork();
|
|
LanguageRepository languageRepository;
|
|
using (var repository = CreateRepository(unitOfWork, out languageRepository))
|
|
{
|
|
|
|
var language = languageRepository.Get(1);
|
|
|
|
var read = new DictionaryItem("Read");
|
|
var translations = new List<IDictionaryTranslation>
|
|
{
|
|
new DictionaryTranslation(language, "Read")
|
|
};
|
|
read.Translations = translations;
|
|
|
|
// Act
|
|
repository.AddOrUpdate(read);
|
|
unitOfWork.Commit();
|
|
|
|
var exists = repository.Exists(read.Id);
|
|
|
|
// Assert
|
|
Assert.That(read.HasIdentity, Is.True);
|
|
Assert.That(exists, Is.True);
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void Can_Perform_Update_On_DictionaryRepository()
|
|
{
|
|
// Arrange
|
|
var provider = new PetaPocoUnitOfWorkProvider(Logger);
|
|
var unitOfWork = provider.GetUnitOfWork();
|
|
LanguageRepository languageRepository;
|
|
using (var repository = CreateRepository(unitOfWork, out languageRepository))
|
|
{
|
|
|
|
// Act
|
|
var item = repository.Get(1);
|
|
var translations = item.Translations.ToList();
|
|
translations[0].Value = "Read even more";
|
|
item.Translations = translations;
|
|
|
|
repository.AddOrUpdate(item);
|
|
unitOfWork.Commit();
|
|
|
|
var dictionaryItem = repository.Get(1);
|
|
|
|
// Assert
|
|
Assert.That(dictionaryItem, Is.Not.Null);
|
|
Assert.That(dictionaryItem.Translations.Count(), Is.EqualTo(2));
|
|
Assert.That(dictionaryItem.Translations.FirstOrDefault().Value, Is.EqualTo("Read even more"));
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void Can_Perform_Update_WithNewTranslation_On_DictionaryRepository()
|
|
{
|
|
// Arrange
|
|
var provider = new PetaPocoUnitOfWorkProvider(Logger);
|
|
var unitOfWork = provider.GetUnitOfWork();
|
|
var languageRepository = new LanguageRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), SqlSyntax, MappingResolver);
|
|
var repository = new DictionaryRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), new SqlCeSyntaxProvider(), languageRepository, MappingResolver);
|
|
|
|
var languageNo = new Language("nb-NO") { CultureName = "nb-NO" };
|
|
ServiceContext.LocalizationService.Save(languageNo);
|
|
|
|
// Act
|
|
var item = repository.Get(1);
|
|
var translations = item.Translations.ToList();
|
|
translations.Add(new DictionaryTranslation(languageNo, "Les mer"));
|
|
item.Translations = translations;
|
|
|
|
repository.AddOrUpdate(item);
|
|
unitOfWork.Commit();
|
|
|
|
var dictionaryItem = repository.Get(1);
|
|
|
|
// Assert
|
|
Assert.That(dictionaryItem, Is.Not.Null);
|
|
Assert.That(dictionaryItem.Translations.Count(), Is.EqualTo(3));
|
|
Assert.That(dictionaryItem.Translations.Single(t => t.Language.IsoCode == "nb-NO").Value, Is.EqualTo("Les mer"));
|
|
}
|
|
|
|
[Test]
|
|
public void Can_Perform_Delete_On_DictionaryRepository()
|
|
{
|
|
// Arrange
|
|
var provider = new PetaPocoUnitOfWorkProvider(Logger);
|
|
var unitOfWork = provider.GetUnitOfWork();
|
|
LanguageRepository languageRepository;
|
|
using (var repository = CreateRepository(unitOfWork, out languageRepository))
|
|
{
|
|
|
|
// Act
|
|
var item = repository.Get(1);
|
|
repository.Delete(item);
|
|
unitOfWork.Commit();
|
|
|
|
var exists = repository.Exists(1);
|
|
|
|
// Assert
|
|
Assert.That(exists, Is.False);
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void Can_Perform_Exists_On_DictionaryRepository()
|
|
{
|
|
// Arrange
|
|
var provider = new PetaPocoUnitOfWorkProvider(Logger);
|
|
var unitOfWork = provider.GetUnitOfWork();
|
|
LanguageRepository languageRepository;
|
|
using (var repository = CreateRepository(unitOfWork, out languageRepository))
|
|
{
|
|
|
|
// Act
|
|
var exists = repository.Exists(1);
|
|
|
|
// Assert
|
|
Assert.That(exists, Is.True);
|
|
}
|
|
}
|
|
|
|
[TearDown]
|
|
public override void TearDown()
|
|
{
|
|
base.TearDown();
|
|
}
|
|
|
|
public void CreateTestData()
|
|
{
|
|
var language = ServiceContext.LocalizationService.GetLanguageByCultureCode("en-US");
|
|
|
|
var languageDK = new Language("da-DK") { CultureName = "da-DK" };
|
|
ServiceContext.LocalizationService.Save(languageDK);//Id 2
|
|
|
|
var readMore = new DictionaryItem("Read More");
|
|
var translations = new List<IDictionaryTranslation>
|
|
{
|
|
new DictionaryTranslation(language, "Read More"),
|
|
new DictionaryTranslation(languageDK, "Læs mere")
|
|
};
|
|
readMore.Translations = translations;
|
|
ServiceContext.LocalizationService.Save(readMore);//Id 1
|
|
|
|
var article = new DictionaryItem("Article");
|
|
var translations2 = new List<IDictionaryTranslation>
|
|
{
|
|
new DictionaryTranslation(language, "Article"),
|
|
new DictionaryTranslation(languageDK, "Artikel")
|
|
};
|
|
article.Translations = translations2;
|
|
ServiceContext.LocalizationService.Save(article);//Id 2
|
|
}
|
|
}
|
|
} |