Object Types are getting from DacFx ObjectTypes (#1574)

* Include Object Types are getting from DacFx

* All tests are passing now with excludObjectType casting

* Test fix with new ExccvludeObjectType change

* Added test case for the include objects types

* Updated  name to objectTypesDictionary and objectType getName from Display attribute

* code Review updates

* Removing Exclude word logic here as the options were updated on DacFx

* updating the null check

* DacFx vBump

* code updates according to review comments
This commit is contained in:
Sai Avishkar Sreerama
2022-08-05 15:28:39 -05:00
committed by GitHub
parent d78ff94b31
commit 1342a8a085
7 changed files with 170 additions and 71 deletions

View File

@@ -79,33 +79,33 @@ END
private DeploymentOptions GetExcludeTableValuedFunctionOptions()
{
var options = new DeploymentOptions();
options.ExcludeObjectTypes = new DeploymentOptionProperty<ObjectType[]>
options.ExcludeObjectTypes = new DeploymentOptionProperty<string[]>
(
new ObjectType[]{
ObjectType.ServerTriggers,
ObjectType.Routes,
ObjectType.LinkedServerLogins,
ObjectType.Endpoints,
ObjectType.ErrorMessages,
ObjectType.Filegroups,
ObjectType.Files,
ObjectType.Logins,
ObjectType.LinkedServers,
ObjectType.Credentials,
ObjectType.DatabaseScopedCredentials,
ObjectType.DatabaseEncryptionKeys,
ObjectType.MasterKeys,
ObjectType.DatabaseAuditSpecifications,
ObjectType.Audits,
ObjectType.ServerAuditSpecifications,
ObjectType.CryptographicProviders,
ObjectType.ServerRoles,
ObjectType.EventSessions,
ObjectType.DatabaseOptions,
ObjectType.EventNotifications,
ObjectType.ServerRoleMembership,
ObjectType.AssemblyFiles,
ObjectType.TableValuedFunctions, //added Functions to excluded types
new string[]{
Enum.GetName(ObjectType.ServerTriggers),
Enum.GetName(ObjectType.Routes),
Enum.GetName(ObjectType.LinkedServerLogins),
Enum.GetName(ObjectType.Endpoints),
Enum.GetName(ObjectType.ErrorMessages),
Enum.GetName(ObjectType.Filegroups),
Enum.GetName(ObjectType.Files),
Enum.GetName(ObjectType.Logins),
Enum.GetName(ObjectType.LinkedServers),
Enum.GetName(ObjectType.Credentials),
Enum.GetName(ObjectType.DatabaseScopedCredentials),
Enum.GetName(ObjectType.DatabaseEncryptionKeys),
Enum.GetName(ObjectType.MasterKeys),
Enum.GetName(ObjectType.DatabaseAuditSpecifications),
Enum.GetName(ObjectType.Audits),
Enum.GetName(ObjectType.ServerAuditSpecifications),
Enum.GetName(ObjectType.CryptographicProviders),
Enum.GetName(ObjectType.ServerRoles),
Enum.GetName(ObjectType.EventSessions),
Enum.GetName(ObjectType.DatabaseOptions),
Enum.GetName(ObjectType.EventNotifications),
Enum.GetName(ObjectType.ServerRoleMembership),
Enum.GetName(ObjectType.AssemblyFiles),
Enum.GetName(ObjectType.TableValuedFunctions), //added Functions to excluded types
}
);
return options;

View File

@@ -1356,8 +1356,8 @@ WITH VALUES
DeploymentOptions options = new DeploymentOptions();
// ensure that files are excluded seperate from filegroups
Assert.True(options.ExcludeObjectTypes.Value.Contains(SqlServer.Dac.ObjectType.Files));
Assert.False(options.ExcludeObjectTypes.Value.Contains(SqlServer.Dac.ObjectType.Filegroups));
Assert.True(options.ExcludeObjectTypes.Value.Contains(Enum.GetName(SqlServer.Dac.ObjectType.Files)));
Assert.False(options.ExcludeObjectTypes.Value.Contains(Enum.GetName(SqlServer.Dac.ObjectType.Filegroups)));
var schemaCompareParams = new SchemaCompareParams
{

View File

@@ -174,7 +174,7 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.SchemaCompare
if (v.Name == nameof(DeploymentOptions.ExcludeObjectTypes))
{
Assert.That((defaultPValue as ObjectType[]).Length, Is.EqualTo((actualPValue as ObjectType[]).Length), $"Number of excluded objects is different; expected: {(defaultPValue as ObjectType[]).Length} actual: {(actualPValue as ObjectType[]).Length}");
Assert.That((defaultPValue as string[]).Length, Is.EqualTo((actualPValue as string[]).Length), $"Number of excluded objects is different.");
}
else
{