mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-14 01:25:40 -05:00
Isolate Shared Test Code (#252)
The goal of this make sure that test code is correctly organized to ensure that test suites aren't dependent on each other.
* UnitTests get their own project now (renaming Microsoft.SqlTools.ServiceLayer.Test to Microsoft.SqlTools.ServiceLayer.UnitTests) which is about 90% of the changes to the files.
* IntegrationTests no longer depends on UnitTests, only Test.Common
* Any shared components from TestObjects that spins up a "live" connection has been moved to IntegrationTests Utility/LiveConnectionHelper.cs
* The dictionary-based mock file stream factory has been moved to Test.Common since it is used by UnitTests and IntegrationTests
* Added a overload that doesn't take a dictionary for when we don't care about monitoring the storage (about 90% of the time)
* The RunIf* wrapper methods have been moved to Test.Common
* OwnerUri and StandardQuery constants have been moved to Test.Common Constants file
* Updating to latest SDK version available at https://www.microsoft.com/net/core#windowscmd
* Moving unit tests to unit test folder
* Changing namespaces to UnitTests
* Moving some constants and shared functionality into common project, making the UnitTests reference it
* Unit tests are working!
* Integration tests are working
* Updating automated test runs
* Fixing one last broken unit test
* Exposing internals for other projects
* Moving edit data tests to UnitTest project
* Applying refactor fixes to unit tests
* Fixing flaky test that wasn't awaiting completion
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
|
||||
using Microsoft.SqlTools.ServiceLayer.Utility;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ServiceHost
|
||||
{
|
||||
/// <summary>
|
||||
/// ScriptFile test case
|
||||
/// </summary>
|
||||
public class SrTests
|
||||
{
|
||||
/// <summary>
|
||||
/// Simple "test" to access string resources
|
||||
/// The purpose of this test is for code coverage. It's probably better to just
|
||||
/// exclude string resources in the code coverage report than maintain this test.
|
||||
/// </summary>
|
||||
[Fact]
|
||||
public void SrStringsTest()
|
||||
{
|
||||
var culture = SR.Culture;
|
||||
SR.Culture = culture;
|
||||
Assert.True(SR.Culture == culture);
|
||||
|
||||
var connectionServiceListDbErrorNullOwnerUri = SR.ConnectionServiceListDbErrorNullOwnerUri;
|
||||
var connectionParamsValidateNullConnection = SR.ConnectionParamsValidateNullConnection;
|
||||
var queryServiceCancelDisposeFailed = SR.QueryServiceCancelDisposeFailed;
|
||||
var queryServiceQueryCancelled = SR.QueryServiceQueryCancelled;
|
||||
var queryServiceDataReaderByteCountInvalid = SR.QueryServiceDataReaderByteCountInvalid;
|
||||
var queryServiceDataReaderCharCountInvalid = SR.QueryServiceDataReaderCharCountInvalid;
|
||||
var queryServiceDataReaderXmlCountInvalid = SR.QueryServiceDataReaderXmlCountInvalid;
|
||||
var queryServiceFileWrapperReadOnly = SR.QueryServiceFileWrapperReadOnly;
|
||||
var queryServiceAffectedOneRow = SR.QueryServiceAffectedOneRow;
|
||||
var queryServiceMessageSenderNotSql = SR.QueryServiceMessageSenderNotSql;
|
||||
var queryServiceResultSetNotRead = SR.QueryServiceResultSetNotRead;
|
||||
var queryServiceResultSetNoColumnSchema = SR.QueryServiceResultSetNoColumnSchema;
|
||||
var connectionServiceListDbErrorNotConnected = SR.ConnectionServiceListDbErrorNotConnected("..");
|
||||
var connectionServiceConnStringInvalidAuthType = SR.ConnectionServiceConnStringInvalidAuthType("..");
|
||||
var connectionServiceConnStringInvalidIntent = SR.ConnectionServiceConnStringInvalidIntent("..");
|
||||
var queryServiceAffectedRows = SR.QueryServiceAffectedRows(10);
|
||||
var queryServiceErrorFormat = SR.QueryServiceErrorFormat(1, 1, 1, 1, "\n", "..");
|
||||
var queryServiceQueryFailed = SR.QueryServiceQueryFailed("..");
|
||||
var workspaceServiceBufferPositionOutOfOrder = SR.WorkspaceServiceBufferPositionOutOfOrder(1, 2, 3, 4);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SrStringsTestWithEnLocalization()
|
||||
{
|
||||
string locale = "en";
|
||||
var args = new string[] { "--locale " + locale };
|
||||
CommandOptions options = new CommandOptions(args);
|
||||
Assert.Equal(SR.Culture.Name, options.Locale);
|
||||
Assert.Equal(options.Locale, locale);
|
||||
|
||||
var TestLocalizationConstant = SR.TestLocalizationConstant;
|
||||
Assert.Equal(TestLocalizationConstant, "EN_LOCALIZATION");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SrStringsTestWithEsLocalization()
|
||||
{
|
||||
string locale = "es";
|
||||
var args = new string[] { "--locale " + locale };
|
||||
CommandOptions options = new CommandOptions(args);
|
||||
Assert.Equal(SR.Culture.Name, options.Locale);
|
||||
Assert.Equal(options.Locale, locale);
|
||||
|
||||
var TestLocalizationConstant = SR.TestLocalizationConstant;
|
||||
Assert.Equal(TestLocalizationConstant, "ES_LOCALIZATION");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SrStringsTestWithNullLocalization()
|
||||
{
|
||||
SR.Culture = null;
|
||||
var args = new string[] { "" };
|
||||
CommandOptions options = new CommandOptions(args);
|
||||
Assert.Null(SR.Culture);
|
||||
Assert.Equal(options.Locale, "");
|
||||
|
||||
var TestLocalizationConstant = SR.TestLocalizationConstant;
|
||||
Assert.Equal(TestLocalizationConstant, "EN_LOCALIZATION");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user