Skip to content

Commit

Permalink
Update build pipeline and tests initialization
Browse files Browse the repository at this point in the history
  • Loading branch information
Yvand committed Jan 24, 2019
1 parent be541d0 commit 7b40cf9
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 18 deletions.
33 changes: 20 additions & 13 deletions LDAPCP.Tests/UnitTestsHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ public class UnitTestsHelper
public static ldapcp.LDAPCP ClaimsProvider = new ldapcp.LDAPCP(UnitTestsHelper.ClaimsProviderName);
public const string ClaimsProviderName = "LDAPCP";
public static string ClaimsProviderConfigName = TestContext.Parameters["ClaimsProviderConfigName"];
public static Uri Context = new Uri(TestContext.Parameters["TestSiteCollectionUri"]);
public static Uri TestSiteCollUri;
public static string TestSiteRelativePath = $"/sites/{TestContext.Parameters["TestSiteCollectionName"]}";
public const int MaxTime = 500000;
public static string FarmAdmin = TestContext.Parameters["FarmAdmin"];
#if DEBUG
Expand Down Expand Up @@ -69,10 +70,11 @@ public static void InitializeSiteCollection()
LDAPCPConfig.CreateConfiguration(ClaimsProviderConstants.CONFIG_ID, ClaimsProviderConstants.CONFIG_NAME, SPTrust.Name);
}

SPWebApplication wa = SPWebApplication.Lookup(Context);
var service = SPFarm.Local.Services.GetValue<SPWebService>(String.Empty);
SPWebApplication wa = service.WebApplications.FirstOrDefault();
if (wa != null)
{
Trace.WriteLine($"{DateTime.Now.ToString("s")} Web application {wa.Name} found, checking if site collection {Context.AbsoluteUri} exists...");
Trace.WriteLine($"{DateTime.Now.ToString("s")} Web application {wa.Name} found.");
SPClaimProviderManager claimMgr = SPClaimProviderManager.Local;
string encodedClaim = claimMgr.EncodeClaim(TrustedGroup);
SPUserInfo userInfo = new SPUserInfo { LoginName = encodedClaim, Name = TrustedGroupToAdd_ClaimValue };
Expand All @@ -82,18 +84,23 @@ public static void InitializeSiteCollection()
if (!SPSite.Exists(rootWebAppUri))
{
Trace.WriteLine($"{DateTime.Now.ToString("s")} Creating root site collection {rootWebAppUri.AbsoluteUri}...");
SPSite spSite = wa.Sites.Add(rootWebAppUri.AbsoluteUri, "root", "root", 1033, "STS#0", FarmAdmin, String.Empty, String.Empty);
SPSite spSite = wa.Sites.Add(rootWebAppUri.AbsoluteUri, "root", "root", 1033, "STS#1", FarmAdmin, String.Empty, String.Empty);
spSite.RootWeb.CreateDefaultAssociatedGroups(FarmAdmin, FarmAdmin, spSite.RootWeb.Title);

SPGroup membersGroup = spSite.RootWeb.AssociatedMemberGroup;
membersGroup.AddUser(userInfo.LoginName, userInfo.Email, userInfo.Name, userInfo.Notes);
spSite.Dispose();
}

if (!SPSite.Exists(Context))
if (!Uri.TryCreate(rootWebAppUri, TestSiteRelativePath, out TestSiteCollUri))
{
Trace.WriteLine($"{DateTime.Now.ToString("s")} Creating site collection {Context.AbsoluteUri}...");
SPSite spSite = wa.Sites.Add(Context.AbsoluteUri, ClaimsProviderName, ClaimsProviderName, 1033, "STS#0", FarmAdmin, String.Empty, String.Empty);
Trace.TraceError($"{DateTime.Now.ToString("s")} Unable to generate Uri of test site collection from Web application Uri {rootWebAppUri.AbsolutePath} and relative path {TestSiteRelativePath}.");
}

if (!SPSite.Exists(TestSiteCollUri))
{
Trace.WriteLine($"{DateTime.Now.ToString("s")} Creating site collection {TestSiteCollUri.AbsoluteUri}...");
SPSite spSite = wa.Sites.Add(TestSiteCollUri.AbsoluteUri, ClaimsProviderName, ClaimsProviderName, 1033, "STS#1", FarmAdmin, String.Empty, String.Empty);
spSite.RootWeb.CreateDefaultAssociatedGroups(FarmAdmin, FarmAdmin, spSite.RootWeb.Title);

SPGroup membersGroup = spSite.RootWeb.AssociatedMemberGroup;
Expand All @@ -102,7 +109,7 @@ public static void InitializeSiteCollection()
}
else
{
using (SPSite spSite = new SPSite(Context.AbsoluteUri))
using (SPSite spSite = new SPSite(TestSiteCollUri.AbsoluteUri))
{
SPGroup membersGroup = spSite.RootWeb.AssociatedMemberGroup;
membersGroup.AddUser(userInfo.LoginName, userInfo.Email, userInfo.Name, userInfo.Notes);
Expand All @@ -111,7 +118,7 @@ public static void InitializeSiteCollection()
}
else
{
Trace.TraceError($"{DateTime.Now.ToString("s")} Web application {Context} was NOT found.");
Trace.TraceError($"{DateTime.Now.ToString("s")} Web application was NOT found.");
}

}
Expand Down Expand Up @@ -146,15 +153,15 @@ public static void TestSearchOperation(string inputValue, int expectedCount, str
{
string[] entityTypes = new string[] { "User", "SecGroup", "SharePointGroup", "System", "FormsRole" };

SPProviderHierarchyTree providerResults = ClaimsProvider.Search(Context, entityTypes, inputValue, null, 30);
SPProviderHierarchyTree providerResults = ClaimsProvider.Search(TestSiteCollUri, entityTypes, inputValue, null, 30);
List<PickerEntity> entities = new List<PickerEntity>();
foreach (var children in providerResults.Children)
{
entities.AddRange(children.EntityData);
}
VerifySearchTest(entities, inputValue, expectedCount, expectedClaimValue);

entities = ClaimsProvider.Resolve(Context, entityTypes, inputValue).ToList();
entities = ClaimsProvider.Resolve(TestSiteCollUri, entityTypes, inputValue).ToList();
VerifySearchTest(entities, inputValue, expectedCount, expectedClaimValue);
}

Expand Down Expand Up @@ -184,7 +191,7 @@ public static void TestValidationOperation(SPClaim inputClaim, bool shouldValida
{
string[] entityTypes = new string[] { "User" };

PickerEntity[] entities = ClaimsProvider.Resolve(Context, entityTypes, inputClaim);
PickerEntity[] entities = ClaimsProvider.Resolve(TestSiteCollUri, entityTypes, inputClaim);

int expectedCount = shouldValidate ? 1 : 0;
Assert.AreEqual(expectedCount, entities.Length, $"Validation of entity \"{inputClaim.Value}\" should have returned {expectedCount} entity, but it returned {entities.Length} instead.");
Expand All @@ -197,7 +204,7 @@ public static void TestValidationOperation(SPClaim inputClaim, bool shouldValida
public static void TestAugmentationOperation(string claimType, string claimValue, bool isMemberOfTrustedGroup)
{
SPClaim inputClaim = new SPClaim(claimType, claimValue, ClaimValueTypes.String, SPOriginalIssuers.Format(SPOriginalIssuerType.TrustedProvider, UnitTestsHelper.SPTrust.Name));
Uri context = new Uri(UnitTestsHelper.Context.AbsoluteUri);
Uri context = new Uri(TestSiteCollUri.AbsoluteUri);

SPClaim[] groups = ClaimsProvider.GetClaimsForEntity(context, inputClaim);

Expand Down
2 changes: 1 addition & 1 deletion LDAPCP.Tests/local.runsettings
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<Parameter name="DataFile_AllAccounts_Search" value="C:\Data\Dev\LDAPCP_Tests_AllAccounts_Search.csv" />
<Parameter name="DataFile_AllAccounts_Validate" value="C:\Data\Dev\LDAPCP_Tests_AllAccounts_Validate.csv" />
<Parameter name="FarmAdmin" value="i:0#.w|contoso\yvand" />
<Parameter name="TestSiteCollectionUri" value="http://spsites/sites/LDAPCP.UnitTests" />
<Parameter name="TestSiteCollectionName" value="LDAPCP.UnitTests" />
<Parameter name="TrustedGroupToAdd_ClaimValue" value="contoso.local\group1" />
<Parameter name="ClaimsProviderConfigName" value="LDAPCPConfig" />
<Parameter name="TestLogFileName" value="LDAPCPIntegrationTests.log" />
Expand Down
18 changes: 14 additions & 4 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,18 +107,28 @@ jobs:
LabId: '/subscriptions/3c497a87-7ec4-4e9c-b227-a733be37d602/resourceGroups/$(DevTestLabName)/providers/Microsoft.DevTestLab/labs/$(DevTestLabName)'
RepositoryId: '/subscriptions/3c497a87-7ec4-4e9c-b227-a733be37d602/resourcegroups/$(DevTestLabName)/providers/microsoft.devtestlab/labs/$(DevTestLabName)/artifactsources/privaterepo897'
TemplateId: '/subscriptions/3c497a87-7ec4-4e9c-b227-a733be37d602/resourceGroups/$(DevTestLabName)/providers/Microsoft.DevTestLab/labs/$(DevTestLabName)/artifactSources/privaterepo897/armTemplates/SharePoint-ADFS-DevTestLabs'
EnvironmentName: 'IntegrationTests-SP$(DevTestLabSharePointVersion)'
ParameterOverrides: "-location 'west europe' -sharePointVersion '$(DevTestLabSharePointVersion)' -enableHybridBenefitServerLicenses 'Yes' -adminUserName '$(DevTestLabAdminUserName)' -adminPassword '$(DevTestLabAdminPassword)' -serviceAccountsPassword '$(DevTestLabServiceAccountsPassword)'"
EnvironmentName: 'IntegrationTests'
ParameterOverrides: "-location 'west europe' -provisionSharePoint2013 '$(DevTestLabTestSharePoint2013)' -provisionSharePoint2016 '$(DevTestLabTestSharePoint2016)' -provisionSharePoint2019 '$(DevTestLabTestSharePoint2019)' -enableHybridBenefitServerLicenses 'Yes' -adminUserName '$(DevTestLabAdminUserName)' -adminPassword '$(DevTestLabAdminPassword)' -serviceAccountsPassword '$(DevTestLabServiceAccountsPassword)'"
TemplateOutputVariables: true
ExportEnvironmentTemplate: true
timeoutInMinutes: 90

- job: ApplyArtifactsSP2013
condition: and(succeeded(), eq(variables['DevTestLabProvisionSharePoint2013'], 'yes'))
dependsOn: CreateTestEnvironment
displayName: Apply artifacts on SharePoint 2013 server
timeoutInMinutes: 30
variables:
jobSharePointVersion: 2013
pool:
name: Hosted VS2017
steps:
- task: AzurePowerShell@3
displayName: 'Apply artifact 7-zip'
inputs:
azureSubscription: 'Microsoft Azure Internal Consumption (3c497a87-7ec4-4e9c-b227-a733be37d602)'
ScriptPath: '$(Build.ArtifactStagingDirectory)\BuildPipeline\DevTestLab_ApplyArtifact.ps1'
ScriptArguments: '-DevTestLabName "$(DevTestLabName)" -VirtualMachineName "SP" -RepositoryName "Public Repo" -ArtifactName "windows-7zip"'
ScriptArguments: '-DevTestLabName "$(DevTestLabName)" -VirtualMachineName "SP$(jobSharePointVersion)" -RepositoryName "Public Repo" -ArtifactName "windows-7zip"'
preferredAzurePowerShellVersion: 5.1.1
enabled: false

Expand All @@ -127,7 +137,7 @@ jobs:
inputs:
azureSubscription: 'Microsoft Azure Internal Consumption (3c497a87-7ec4-4e9c-b227-a733be37d602)'
ScriptPath: '$(Build.ArtifactStagingDirectory)\BuildPipeline\DevTestLab_ApplyArtifact.ps1'
ScriptArguments: '-DevTestLabName "$(DevTestLabName)" -VirtualMachineName "SP" -RepositoryName "Yvand/AzureRM-Templates" -ArtifactName "windows-vsts-build-agent" -param_vstsAccount "YvanDev" -param_vstsPassword "$(AccessTokenDevOpsYvand)" -param_poolName "$(system.teamProject)-DevTestLabs" -param_windowsLogonAccount "contoso\$(DevTestLabAdminUserName)" -param_windowsLogonPassword "$(DevTestLabAdminPassword)" -param_agentName "SP$(DevTestLabSharePointVersion)" -param_agentNameSuffix "-$(Build.BuildNumber)" -param_RunAsAutoLogon false -param_driveLetter C -param_workDirectory ""'
ScriptArguments: '-DevTestLabName "$(DevTestLabName)" -VirtualMachineName "SP$(jobSharePointVersion)" -RepositoryName "Yvand/AzureRM-Templates" -ArtifactName "windows-vsts-build-agent" -param_vstsAccount "YvanDev" -param_vstsPassword "$(AccessTokenDevOpsYvand)" -param_poolName "$(system.teamProject)-DevTestLabs" -param_windowsLogonAccount "contoso\$(DevTestLabAdminUserName)" -param_windowsLogonPassword "$(DevTestLabAdminPassword)" -param_agentName "SP$(jobSharePointVersion)" -param_agentNameSuffix "-$(Build.BuildNumber)" -param_RunAsAutoLogon false -param_driveLetter C -param_workDirectory ""'
preferredAzurePowerShellVersion: 5.1.1

- task: AzurePowerShell@3
Expand Down

0 comments on commit 7b40cf9

Please sign in to comment.