From 1080d36b8e751e77070d13642232c8c72c544a0a Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Mon, 25 Jan 2021 19:22:58 +0100 Subject: [PATCH 1/2] Migrated SqlCeSyntaxProviderTests and removed tests that tested the test framework... --- .../SqlServerSyntaxProviderTests.cs} | 25 ++-- .../Testing/TestingTests/MockTests.cs | 132 ------------------ .../Testing/TestingTests/NUnitTests.cs | 128 ----------------- src/Umbraco.Tests/Umbraco.Tests.csproj | 6 +- 4 files changed, 16 insertions(+), 275 deletions(-) rename src/{Umbraco.Tests/Persistence/SyntaxProvider/SqlCeSyntaxProviderTests.cs => Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/SyntaxProvider/SqlServerSyntaxProviderTests.cs} (89%) delete mode 100644 src/Umbraco.Tests/Testing/TestingTests/MockTests.cs delete mode 100644 src/Umbraco.Tests/Testing/TestingTests/NUnitTests.cs diff --git a/src/Umbraco.Tests/Persistence/SyntaxProvider/SqlCeSyntaxProviderTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/SyntaxProvider/SqlServerSyntaxProviderTests.cs similarity index 89% rename from src/Umbraco.Tests/Persistence/SyntaxProvider/SqlCeSyntaxProviderTests.cs rename to src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/SyntaxProvider/SqlServerSyntaxProviderTests.cs index a43e912ddf..62b3a9837d 100644 --- a/src/Umbraco.Tests/Persistence/SyntaxProvider/SqlCeSyntaxProviderTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/SyntaxProvider/SqlServerSyntaxProviderTests.cs @@ -13,33 +13,34 @@ using Umbraco.Core.Persistence.DatabaseAnnotations; using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Core.Persistence.Dtos; using Umbraco.Core.Persistence.SqlSyntax; -using Umbraco.Core.Scoping; -using Umbraco.Tests.LegacyXmlPublishedCache; -using Umbraco.Tests.TestHelpers; +using Umbraco.Tests.Integration.Testing; using Umbraco.Tests.Testing; namespace Umbraco.Tests.Persistence.SyntaxProvider { [TestFixture] - public class SqlCeSyntaxProviderTests : BaseUsingSqlCeSyntax + public class SqlServerSyntaxProviderTests : UmbracoIntegrationTest { + private ISqlContext SqlContext => GetRequiredService().SqlContext; + + [UmbracoTest(Database = UmbracoTestOptions.Database.NewEmptyPerTest)] [Test] public void Can_Generate_Delete_SubQuery_Statement() { var mediaObjectType = Constants.ObjectTypes.Media; - var subQuery = Sql() - .Select("DISTINCT cmsContentXml.nodeId") - .From() + var subQuery = SqlContext.Sql() + .Select("DISTINCT cmsContentNu.nodeId") + .From() .InnerJoin() - .On(left => left.NodeId, right => right.NodeId) + .On(left => left.NodeId, right => right.NodeId) .Where(dto => dto.NodeObjectType == mediaObjectType); - var sqlOutput = SqlContext.SqlSyntax.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery); + var sqlOutput = SqlContext.SqlSyntax.GetDeleteSubquery("cmsContentNu", "nodeId", subQuery); - Assert.AreEqual(@"DELETE FROM [cmsContentXml] WHERE [nodeId] IN (SELECT [nodeId] FROM (SELECT DISTINCT cmsContentXml.nodeId -FROM [cmsContentXml] + Assert.AreEqual(@"DELETE FROM [cmsContentNu] WHERE [nodeId] IN (SELECT [nodeId] FROM (SELECT DISTINCT cmsContentNu.nodeId +FROM [cmsContentNu] INNER JOIN [umbracoNode] -ON [cmsContentXml].[nodeId] = [umbracoNode].[id] +ON [cmsContentNu].[nodeId] = [umbracoNode].[id] WHERE (([umbracoNode].[nodeObjectType] = @0))) x)".Replace(Environment.NewLine, " ").Replace("\n", " ").Replace("\r", " "), sqlOutput.SQL.Replace(Environment.NewLine, " ").Replace("\n", " ").Replace("\r", " ")); diff --git a/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs b/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs deleted file mode 100644 index 8b9d5d7a4a..0000000000 --- a/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs +++ /dev/null @@ -1,132 +0,0 @@ -using System; -using System.Globalization; -using System.Linq; -using System.Web.Security; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Logging.Abstractions; -using Moq; -using NUnit.Framework; -using Umbraco.Core; -using Umbraco.Core.Cache; -using Umbraco.Core.Configuration; -using Umbraco.Core.Configuration.Models; -using Umbraco.Core.Dictionary; -using Umbraco.Core.Logging; -using Umbraco.Core.Mapping; -using Umbraco.Core.Models; -using Umbraco.Core.Models.PublishedContent; -using Umbraco.Core.Templates; -using Umbraco.Core.Persistence; -using Umbraco.Core.Security; -using Umbraco.Core.Services; -using Umbraco.Tests.Common; -using Umbraco.Tests.TestHelpers; -using Umbraco.Web; -using Umbraco.Web.PublishedCache; -using Umbraco.Web.Routing; -using Umbraco.Web.Security; -using Umbraco.Web.Security.Providers; -using Umbraco.Web.WebApi; -using Current = Umbraco.Web.Composing.Current; - - -namespace Umbraco.Tests.Testing.TestingTests -{ - [TestFixture] - public class MockTests : UmbracoTestBase - { - public override void SetUp() - { - base.SetUp(); - - Current.UmbracoContextAccessor = new TestUmbracoContextAccessor(); - } - - [Test] - public void Can_Mock_Service_Context() - { - // ReSharper disable once UnusedVariable - var serviceContext = TestObjects.GetServiceContextMock(); - Assert.Pass(); - } - - [Test] - public void Can_Mock_Umbraco_Context() - { - var umbracoContext = TestObjects.GetUmbracoContextMock(Current.UmbracoContextAccessor); - Assert.AreEqual(umbracoContext, Current.UmbracoContext); - } - - [Test] - public void Can_Mock_Umbraco_Helper() - { - // unless we can inject them in MembershipHelper, we need need this - Builder.Services.AddTransient(_ => Mock.Of()); - Builder.Services.AddTransient(_ => Mock.Of()); - Builder.Services.AddTransient(_ => Mock.Of()); - Builder.Services.AddTransient(_ => AppCaches.Disabled); - Builder.Services.AddTransient(); - - var loggerFactory = Mock.Of(); - var memberService = Mock.Of(); - var memberTypeService = Mock.Of(); - var membershipProvider = new MembersMembershipProvider(memberService, memberTypeService, Mock.Of(), TestHelper.GetHostingEnvironment(), TestHelper.GetIpResolver()); - var membershipHelper = new MembershipHelper(Mock.Of(), Mock.Of(), membershipProvider, Mock.Of(), memberService, memberTypeService, Mock.Of(), AppCaches.Disabled, loggerFactory, ShortStringHelper, Mock.Of()); - - // ReSharper disable once UnusedVariable - var helper = new UmbracoHelper(Mock.Of(), - Mock.Of(), - Mock.Of(), - Mock.Of(), - membershipHelper); - Assert.Pass(); - } - - [Test] - public void Can_Mock_UrlProvider() - { - var umbracoContext = TestObjects.GetUmbracoContextMock(); - - - var urlProviderMock = new Mock(); - urlProviderMock.Setup(provider => provider.GetUrl(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) - .Returns(UrlInfo.Url("/hello/world/1234")); - var urlProvider = urlProviderMock.Object; - - var webRoutingSettings = new WebRoutingSettings(); - var theUrlProvider = new UrlProvider( - new TestUmbracoContextAccessor(umbracoContext), - Microsoft.Extensions.Options.Options.Create(webRoutingSettings), - new UrlProviderCollection(new [] { urlProvider }), - new MediaUrlProviderCollection( Enumerable.Empty()) - , umbracoContext.VariationContextAccessor); - - var contentType = new PublishedContentType(Guid.NewGuid(), 666, "alias", PublishedItemType.Content, Enumerable.Empty(), Enumerable.Empty(), ContentVariation.Nothing); - var publishedContent = Mock.Of(); - Mock.Get(publishedContent).Setup(x => x.ContentType).Returns(contentType); - - Assert.AreEqual("/hello/world/1234", theUrlProvider.GetUrl(publishedContent)); - } - - [Test] - public void Can_Mock_UmbracoApiController_Dependencies_With_Injected_UmbracoMapper() - { - var profilingLogger = Mock.Of(); - var memberService = Mock.Of(); - var memberTypeService = Mock.Of(); - var membershipProvider = new MembersMembershipProvider(memberService, memberTypeService, Mock.Of(), TestHelper.GetHostingEnvironment(), TestHelper.GetIpResolver()); - var umbracoMapper = new UmbracoMapper(new MapDefinitionCollection(new[] { Mock.Of() })); - - var umbracoApiController = new FakeUmbracoApiController(new GlobalSettings(), Mock.Of(), Mock.Of(), Mock.Of(), ServiceContext.CreatePartial(), AppCaches.NoCache, profilingLogger , Mock.Of(), umbracoMapper, Mock.Of()); - - Assert.Pass(); - } - } - - internal class FakeUmbracoApiController : UmbracoApiController - { - public FakeUmbracoApiController(GlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, IBackOfficeSecurityAccessor backOfficeSecurityAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, backOfficeSecurityAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { } - } -} diff --git a/src/Umbraco.Tests/Testing/TestingTests/NUnitTests.cs b/src/Umbraco.Tests/Testing/TestingTests/NUnitTests.cs deleted file mode 100644 index 436a4648f5..0000000000 --- a/src/Umbraco.Tests/Testing/TestingTests/NUnitTests.cs +++ /dev/null @@ -1,128 +0,0 @@ -using NUnit.Framework; - -namespace Umbraco.Tests.Testing.TestingTests -{ - // these 4 test classes validate that our test class pattern *should* be: - // - test base classes *not* marked as [TestFixture] but having a virtual SetUp - // method marked as [SetUp] - // - test classes inheriting from base class, marked as [TestFixture], and - // overriding the SetUp method *without* repeating the [SetUp] attribute - // - same for TearDown - // - // ie what InheritsTestClassWithoutAttribute does - and it works - - [TestFixture] - public class InheritsTestClassWithAttribute : NUnitTestClassBase - { - public const int ConstValue = 77; - - protected int Value { get; set; } - - [SetUp] - public override void SetUp() - { - base.SetUp(); - Value = ConstValue; - } - - [Test] - public void AssertValues() - { - Assert.AreEqual(ConstBaseValue, BaseValue); - Assert.AreEqual(ConstValue, Value); - } - } - - [TestFixture] - public class InheritsTestClassWithoutAttribute : NUnitTestClassBase - { - public const int ConstValue = 88; - - protected int Value { get; set; } - - // not needed! - public override void SetUp() - { - base.SetUp(); - Value = ConstValue; - } - - [Test] - public void AssertValues() - { - Assert.AreEqual(ConstBaseValue, BaseValue); - Assert.AreEqual(ConstValue, Value); - } - } - - [TestFixture] - public class InheritTestFixtureWithAttribute : NUnitTestFixtureBase - { - public const int ConstValue = 99; - - protected int Value { get; set; } - - [SetUp] - public override void SetUp() - { - base.SetUp(); - Value = ConstValue; - } - - [Test] - public void AssertValues() - { - Assert.AreEqual(ConstBaseValue, BaseValue); - Assert.AreEqual(ConstValue, Value); - } - } - - [TestFixture] - public class InheritTestFixtureWithoutAttribute : NUnitTestFixtureBase - { - public const int ConstValue = 66; - - protected int Value { get; set; } - - // not needed! - public override void SetUp() - { - base.SetUp(); - Value = ConstValue; - } - - [Test] - public void AssertValues() - { - Assert.AreEqual(ConstBaseValue, BaseValue); - Assert.AreEqual(ConstValue, Value); - } - } - - public class NUnitTestClassBase - { - public const int ConstBaseValue = 33; - - protected int BaseValue { get; set; } - - [SetUp] - public virtual void SetUp() - { - BaseValue = ConstBaseValue; - } - } - - [TestFixture] - public class NUnitTestFixtureBase - { - public const int ConstBaseValue = 42; - - protected int BaseValue { get; set; } - - [SetUp] - public virtual void SetUp() - { - BaseValue = ConstBaseValue; - } - } -} diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index ff6688280c..36d706e001 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -189,7 +189,6 @@ - @@ -200,7 +199,6 @@ - @@ -211,7 +209,6 @@ - @@ -320,6 +317,9 @@ + + + $(NuGetPackageFolders.Split(';')[0]) From e0f98d84f69544b8aa810dde74cf94951663cdb6 Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Mon, 25 Jan 2021 19:34:17 +0100 Subject: [PATCH 2/2] Migrated RangeTests.cs --- .../Umbraco.Core}/Models/RangeTests.cs | 0 src/Umbraco.Tests/Umbraco.Tests.csproj | 1 - 2 files changed, 1 deletion(-) rename src/{Umbraco.Tests => Umbraco.Tests.UnitTests/Umbraco.Core}/Models/RangeTests.cs (100%) diff --git a/src/Umbraco.Tests/Models/RangeTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Models/RangeTests.cs similarity index 100% rename from src/Umbraco.Tests/Models/RangeTests.cs rename to src/Umbraco.Tests.UnitTests/Umbraco.Core/Models/RangeTests.cs diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index 36d706e001..d68ee1b897 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -159,7 +159,6 @@ -