using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.SharePoint;
using System.Xml;
using System.Reflection;
using SharePointProject;
namespace SharePointProject.UnitTest
{
/// <summary>
/// Summary description for UniquePermissionWebpartTests
/// </summary>
[TestClass]
public class UniquePermissionWebpartTests
{
private SPWeb _SPWeb;
/// <summary>
/// Initializes a new instance of the <see cref="UniquePermissionWebpartTests"/> class.
/// </summary>
public UniquePermissionWebpartTests()
{
_SPWeb = SharePointMocked.createMockedSPWeb(10);
}
/// <summary>
/// Tests the results count.
/// </summary>
[TestMethod()]
public void TestResultsCount()
{
int expectedCount = 4;
int resultCount;
UniquePermissionsWebpart wp = new UniquePermissionsWebpart();
MethodInfo mi = wp.GetType().GetMethod("GetListsWithUniquePermissions", BindingFlags.NonPublic|BindingFlags.Public|BindingFlags.Instance);
string result = mi.Invoke(wp, new object[] { _SPWeb }) as string;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(result);
XmlNodeList nodes = xmlDoc.SelectNodes("/Lists/List");
resultCount = nodes.Count;
Assert.AreEqual(resultCount, expectedCount);
}
/// <summary>
/// Tests the valid list names.
/// </summary>
[TestMethod()]
public void TestValidListNames()
{
List<string> expectedListNames = new List<string>() { "ListTitle_ 0", "ListTitle_ 3", "ListTitle_ 6", "ListTitle_ 9" };
List<string> resultListNames = new List<string>();
UniquePermissionsWebpart wp = new UniquePermissionsWebpart();
MethodInfo mi = wp.GetType().GetMethod("GetListsWithUniquePermissions", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
string result = mi.Invoke(wp, new object[] { _SPWeb }) as string;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(result);
XmlNodeList nodes = xmlDoc.SelectNodes("/Lists/List");
foreach (XmlNode xmlNode in nodes)
resultListNames.Add(xmlNode.Attributes["Name"].Value);
Assert.ReferenceEquals(resultListNames, expectedListNames);
}
/// <summary>
/// Tests the invalid list names.
/// </summary>
[TestMethod()]
public void TestInvalidListNames()
{
List<string> notExpectedListNames = new List<string>() { "ListTitle_ 1", "ListTitle_ 2", "ListTitle_ 5", "ListTitle_ 9" };
List<string> resultListNames = new List<string>();
UniquePermissionsWebpart wp = new UniquePermissionsWebpart();
MethodInfo mi = wp.GetType().GetMethod("GetListsWithUniquePermissions", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
string result = mi.Invoke(wp, new object[] { _SPWeb }) as string;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(result);
XmlNodeList nodes = xmlDoc.SelectNodes("/Lists/List");
foreach (XmlNode xmlNode in nodes)
resultListNames.Add(xmlNode.Attributes["Name"].Value);
Assert.AreNotEqual<List<string>>(notExpectedListNames,resultListNames);
}
}
}