public void GetCurrent_CustomServiceLocatorReloadsSiteOnChange()
        {
            //Arrange
            var f = new BSPConfiguredFarm();;
            var sharepointLocator = new TestableSharePointServiceLocator();

            //Arrange
            BIServiceLocatorFactory.Reset();
            BIServiceLocatorFactory.LocatorTypeToUse = typeof(FakeLocator);
            var farmTypeMappings = new List <TypeMapping> {
                TypeMapping.Create <IServiceLocatorFactory, BIServiceLocatorFactory>()
            };

            sharepointLocator.FarmTypeMappings = farmTypeMappings;
            var expectedSite = new BSPSite();
            var typeMappings = new List <TypeMapping> {
                TypeMapping.Create <ILogger, SharePointLogger>()
            };

            expectedSite.ID = TestsConstants.TestGuid;
            var time = new DateTime(2010, 5, 30);

            sharepointLocator.SiteTypeMappings = typeMappings;
            MDateTime.NowGet = () => time;
            var target = sharepointLocator.GetCurrent(expectedSite);     // get current to make sure it is in memory

            time = time.AddSeconds(SharePointServiceLocator.SiteCachingTimeoutInSeconds + 1);
            sharepointLocator.SiteLastUpdatedRetVal = time;

            //Act
            var targetLogger = sharepointLocator.GetCurrent(expectedSite).GetInstance <ILogger>();

            //Assert
            Assert.IsTrue(BIServiceLocatorFactory.LoadCount == 2);
        }
        public void ctor_ValidStackBuilt()
        {
            //Arrange
            BSPSite site = new BSPSite();
            BSPWeb  web  = site.SetRootWeb();

            web.ServerRelativeUrl = "foo/bar";
            BSPList list = web.Lists.SetOne();

            list.Title = ConfigurationList.ConfigListName;
            web.ID     = TestsConstants.TestGuid;
            site.ID    = new Guid("{7C039254-10B7-49F0-AA8D-F592206C7130}");
            var moleWeb = new Microsoft.SharePoint.Moles.MSPWeb(web);

            moleWeb.GetListString = (listUrl) =>
            {
                if (listUrl == "foo/bar/Lists/" + ConfigurationList.ConfigListName)
                {
                    return(list);
                }
                return(null);
            };

            //Act
            var stack = new SandboxWithProxyPropertyBagHierarchy(web);

            //Assert
            Assert.IsTrue(stack.PropertyBags.Count() == 4);
            Assert.IsInstanceOfType(stack.PropertyBags.First(), typeof(SPWebPropertyBag));
            Assert.IsInstanceOfType(stack.PropertyBags.Skip(1).First(), typeof(SPSitePropertyBag));
            Assert.IsInstanceOfType(stack.PropertyBags.Skip(2).First(), typeof(SandboxWebAppPropertyBag));
            Assert.IsInstanceOfType(stack.PropertyBags.Skip(3).First(), typeof(SandboxFarmPropertyBag));
        }
        public void GetCurrent_SiteUsesCachedInstance()
        {
            //Setup
            var typeMappings = new List <TypeMapping> {
                TypeMapping.Create <ILogger, SharePointLogger>()
            };

            BSPFarm.SetLocal();
            var expectedSite = new BSPSite {
                ID = TestsConstants.TestGuid
            };

            var sharepointLocator = new TestableSharePointServiceLocator();

            sharepointLocator.FarmTypeMappings      = new List <TypeMapping>();
            sharepointLocator.SiteTypeMappings      = typeMappings;
            sharepointLocator.SiteLastUpdatedRetVal = DateTime.Now;

            var target = sharepointLocator.GetCurrent(expectedSite);        // get current to make sure it is in memory

            Assert.IsTrue(sharepointLocator.SiteGotTypeMappingsFromConfig); //getting from config and populating cache

            sharepointLocator.SiteGotTypeMappingsFromConfig = false;        // reset getting config...

            //Act
            sharepointLocator.GetCurrent(expectedSite);


            //Assert
            Assert.IsFalse(sharepointLocator.SiteGotTypeMappingsFromConfig);
        }
        public void GetCurrent_SiteTimeoutReloadDoesntDropProgrammaticOverride()
        {
            //Setup
            var typeMappings = new List <TypeMapping> {
                TypeMapping.Create <ILogger, SharePointLogger>()
            };

            BSPFarm.SetLocal();
            var expectedSite = new BSPSite {
                ID = TestsConstants.TestGuid
            };
            var time = new DateTime(2010, 5, 30);

            var sharepointLocator = new TestableSharePointServiceLocator
            {
                FarmTypeMappings = new List <TypeMapping>(),
                SiteTypeMappings = typeMappings
            };

            MDateTime.NowGet = () => time;
            var target = sharepointLocator.GetCurrent(expectedSite);     // get current to make sure it is in memory

            time = time.AddSeconds(SharePointServiceLocator.SiteCachingTimeoutInSeconds + 1);
            sharepointLocator.SiteLastUpdatedRetVal = time;

            //Act
            var initialLogger = target.GetInstance <ILogger>();

            ((ActivatingServiceLocator)target).RegisterTypeMapping <ILogger, SBaseLogger>();
            var targetLogger = sharepointLocator.GetCurrent(expectedSite).GetInstance <ILogger>();

            //Assert
            Assert.IsInstanceOfType(initialLogger, typeof(SharePointLogger));
            Assert.IsInstanceOfType(targetLogger, typeof(SBaseLogger));
        }
        public void GetCurrent_LoadsSiteTypeMappings()
        {
            //Arrange
            var typeMappings = new List <TypeMapping> {
                TypeMapping.Create <ILogger, SharePointLogger>()
            };
            var siteTypeMappings = new List <TypeMapping> {
                TypeMapping.Create <ILogger, SBaseLogger>()
            };

            BSPFarm.SetLocal();
            var expectedSite = new BSPSite();

            expectedSite.ID = TestsConstants.TestGuid;

            var sharepointLocator = new TestableSharePointServiceLocator();

            sharepointLocator.FarmTypeMappings = typeMappings;
            sharepointLocator.SiteTypeMappings = siteTypeMappings;

            //Act
            var target       = sharepointLocator.GetCurrent(expectedSite);
            var targetLogger = target.GetInstance <ILogger>();

            //Assert
            Assert.IsInstanceOfType(targetLogger, typeof(SBaseLogger));
        }
        public void GetCurrent_AddNewFarmMappingAlreadyDefinedInSiteUsesSite()
        {
            //Setup
            var typeMappings = new List <TypeMapping> {
                TypeMapping.Create <ILogger, SharePointLogger>()
            };

            BSPFarm.SetLocal();
            var expectedSite = new BSPSite {
                ID = TestsConstants.TestGuid
            };

            var sharepointLocator = new TestableSharePointServiceLocator();

            sharepointLocator.FarmTypeMappings = new List <TypeMapping>();
            sharepointLocator.SiteTypeMappings = typeMappings;

            var target      = sharepointLocator.GetCurrent(expectedSite); // get current to make sure it is in memory
            var farmLocator = sharepointLocator.GetCurrent() as ActivatingServiceLocator;

            //Act
            farmLocator.RegisterTypeMapping <ILogger, SBaseLogger>();
            var targetLogger = target.GetInstance <ILogger>();

            //Assert
            Assert.IsInstanceOfType(targetLogger, typeof(SharePointLogger));
        }
Esempio n. 7
0
        public void GetHierarchy_GetsHierarchyForSandbox()
        {
            //Arrange
            var context = new MockAppContextProvider();

            context.IsProxyInstalledRetValue = false;
            context.SetSandbox();
            SharePointEnvironment.ApplicationContextProvider = context;
            BSPSite site = new BSPSite();
            var     web  = site.SetRootWeb();

            web.ServerRelativeUrl = "foo/bar";
            BSPList list = web.Lists.SetOne();

            list.Title = ConfigurationList.ConfigListName;
            web.ID     = TestsConstants.TestGuid;
            site.ID    = new Guid("{7C039254-10B7-49F0-AA8D-F592206C7130}");
            var moleWeb = new Microsoft.SharePoint.Moles.MSPWeb(web);

            moleWeb.GetListString = (listUrl) =>
            {
                if (listUrl == "foo/bar/Lists/" + ConfigurationList.ConfigListName)
                {
                    return(list);
                }
                return(null);
            };

            //Act
            IPropertyBagHierarchy target = HierarchyBuilder.GetHierarchy(web);

            //Assert
            Assert.IsInstanceOfType(target, typeof(SandboxPropertyBagHierarchy));
        }
Esempio n. 8
0
        public void WriteSandboxLog_LogsMessage()
        {
            //Arrange
            SharePointEnvironment.Reset();
            var context = new SIApplicationContextProvider()
            {
                GetCurrentAppDomainFriendlyName = () => "SandboxDomain",
                IsProxyCheckerInstalled         = () => true,
                IsProxyInstalledStringString    = (a, t) => true,
            };

            SharePointEnvironment.ApplicationContextProvider = context;
            string testMessage = testMessageString;
            int    testEventId = 99;
            LoggingOperationArgs loggingArgs = null;
            BSPSite site = new BSPSite();
            MSPSite s    = new MSPSite(site)
            {
                IDGet = () => TestsConstants.TestGuid
            };

            BSPContext.SetCurrent();
            MSPContext c = new MSPContext(BSPContext.Current)
            {
                SiteGet = () => site
            };

            MSPUtility.ExecuteRegisteredProxyOperationStringStringSPProxyOperationArgs = (a, t, args) =>
            {
                loggingArgs =
                    args as
                    LoggingOperationArgs;
                return(null);
            };


            //Act
            var target = new SharePointLogger();

            target.LogToOperations(testMessage, testEventId, SandboxEventSeverity.Error, TestsConstants.AreasCategories);

            // Assert
            Assert.IsNotNull(loggingArgs);
            Assert.AreEqual(loggingArgs.Message, testMessage);
            Assert.AreEqual(loggingArgs.Category, TestsConstants.AreasCategories);
            Assert.AreEqual(loggingArgs.EventId, testEventId);
            Assert.AreEqual((SandboxEventSeverity)loggingArgs.Severity, SandboxEventSeverity.Error);
        }
Esempio n. 9
0
        public void GetHierarchy_GetsHierarchyForFullTrust()
        {
            //Arrange
            var site   = new BSPSite();
            var web    = site.SetRootWeb();
            var webApp = new BSPWebApplication();

            site.WebApplication = webApp;
            var f = new BSPConfiguredFarm();

            webApp.Farm = SPFarm.Local;

            //Act
            IPropertyBagHierarchy target = HierarchyBuilder.GetHierarchy(web);

            //Assert
            Assert.IsInstanceOfType(target, typeof(FullTrustPropertyBagHierarchy));
        }
Esempio n. 10
0
        public void WriteSandboxTrace_NoContext_TracesMessage()
        {
            //Arrange
            SharePointEnvironment.Reset();
            string testMessage = testMessageString;
            int    testEventId = 99;
            TracingOperationArgs tracingArgs = null;
            BSPSite site = new BSPSite();
            MSPSite s    = new MSPSite(site)
            {
                IDGet = () => TestsConstants.TestGuid
            };

            MSPContext.CurrentGet = () => null;
            MSPUtility.ExecuteRegisteredProxyOperationStringStringSPProxyOperationArgs = (a, t, args) =>
            {
                tracingArgs =
                    args as
                    TracingOperationArgs;
                return(null);
            };

            var context = new SIApplicationContextProvider()
            {
                GetCurrentAppDomainFriendlyName = () => "SandboxDomain",
                IsProxyCheckerInstalled         = () => true,
                IsProxyInstalledStringString    = (a, t) => true,
            };

            SharePointEnvironment.ApplicationContextProvider = context;

            //Act
            var target = new SharePointLogger();

            target.TraceToDeveloper(testMessage, testEventId, SandboxTraceSeverity.High, TestsConstants.AreasCategories);

            // Assert
            Assert.IsNotNull(tracingArgs);
            Assert.AreEqual(tracingArgs.Message, testMessage);
            Assert.AreEqual(tracingArgs.Category, TestsConstants.AreasCategories);
            Assert.AreEqual(tracingArgs.EventId, testEventId);
            Assert.AreEqual((SandboxTraceSeverity)tracingArgs.Severity, SandboxTraceSeverity.High);
        }
        public void EnsureConfigurationList_WithExistingListNew()
        {
            // Arrange
            BSPContentType.Prepare();
            BSPFieldLink.Prepare();

            var listUrl = string.Format("/Lists/{0}", ConfigurationList.ConfigListName);
            var site    = new BSPSite();
            var rootWeb = site.SetRootWeb();

            rootWeb.Fields.SetAll(new SPField[] {
                new BSPField {
                    Id = ConfigurationList.SettingKeyFieldId
                },
                new BSPField {
                    Id = ConfigurationList.SettingValueFieldId
                },
                new BSPField {
                    Id = ConfigurationList.SettingWebIdFieldId
                },
            });
            rootWeb.ServerRelativeUrl = "/";
            rootWeb.ContentTypes.SetEmpty();
            rootWeb.ContentTypes.ReadOnly = false;

            var list = rootWeb.Lists.SetOne();

            list.Title = ConfigurationList.ConfigListName;
            list.Fields.SetOne(new BSPField {
                Id = ConfigurationList.SettingWebIdFieldId
            });
            list.Hidden = true;
            list.FieldIndexes.SetEmpty();
            list.Url = listUrl;
            list.ContentTypes.SetEmpty();

            // Act and Assert
            EnsureConfigurationListForAnySite(site);
        }
        public void GetCurrent_SiteTimeoutReloadCachesInstanceAfterReload()
        {
            //Setup
            var typeMappings = new List <TypeMapping> {
                TypeMapping.Create <ILogger, SharePointLogger>()
            };
            var f = new BSPConfiguredFarm();

            var expectedSite = new BSPSite {
                ID = TestsConstants.TestGuid
            };
            var time = new DateTime(2010, 5, 30);

            var sharepointLocator = new TestableSharePointServiceLocator();

            sharepointLocator.FarmTypeMappings = new List <TypeMapping>();
            sharepointLocator.SiteTypeMappings = typeMappings;
            MDateTime.NowGet = () => time;

            sharepointLocator.SiteGotTypeMappingsFromConfig = false;

            sharepointLocator.GetCurrent(expectedSite);

            Assert.IsTrue(sharepointLocator.SiteGotTypeMappingsFromConfig);

            sharepointLocator.SiteGotTypeMappingsFromConfig = false;
            time = time.AddSeconds(SharePointServiceLocator.SiteCachingTimeoutInSeconds + 1);
            sharepointLocator.SiteLastUpdatedRetVal = time;
            var targetLogger = sharepointLocator.GetCurrent(expectedSite).GetInstance <ILogger>();

            //Act
            sharepointLocator.SiteGotTypeMappingsFromConfig = false;
            targetLogger = sharepointLocator.GetCurrent(expectedSite).GetInstance <ILogger>();

            //Assert
            Assert.IsFalse(sharepointLocator.SiteGotTypeMappingsFromConfig);
        }
        public void GetCurrent_SiteTimeoutReloadWorks()
        {
            //Setup
            var typeMappings = new List <TypeMapping> {
                TypeMapping.Create <ILogger, SharePointLogger>()
            };
            var f = new BSPConfiguredFarm();

            var expectedSite = new BSPSite {
                ID = TestsConstants.TestGuid
            };
            var time = new DateTime(2010, 5, 30);

            var sharepointLocator = new TestableSharePointServiceLocator();

            sharepointLocator.FarmTypeMappings = new List <TypeMapping>();
            sharepointLocator.SiteTypeMappings = typeMappings;

            MDateTime.NowGet = () => time;
            var target = sharepointLocator.GetCurrent(expectedSite);     // get current to make sure it is in memory

            time = time.AddSeconds(SharePointServiceLocator.SiteCachingTimeoutInSeconds + 1);
            sharepointLocator.SiteLastUpdatedRetVal = time;

            //Act
            var initialLogger = target.GetInstance <ILogger>();

            sharepointLocator.SiteTypeMappings = new List <TypeMapping> {
                TypeMapping.Create <ILogger, SBaseLogger>()
            };
            var targetLogger = sharepointLocator.GetCurrent(expectedSite).GetInstance <ILogger>();

            //Assert
            Assert.IsInstanceOfType(initialLogger, typeof(SharePointLogger));
            Assert.IsInstanceOfType(targetLogger, typeof(SBaseLogger));
        }
        public void ctor_ValidStackBuilt()
        {
            //Arrange
            var    site = new BSPSite();
            BSPWeb web  = site.SetRootWeb();

            web.Site = site;
            var webApp = new BSPWebApplication();

            site.WebApplication = webApp;
            var f = new BSPConfiguredFarm();

            webApp.Farm = SPFarm.Local;

            //Act
            var stack = new FullTrustPropertyBagHierarchy(web);

            //Assert
            Assert.IsTrue(stack.PropertyBags.Count() == 4);
            Assert.IsInstanceOfType(stack.PropertyBags.First(), typeof(SPWebPropertyBag));
            Assert.IsInstanceOfType(stack.PropertyBags.Skip(1).First(), typeof(SPSitePropertyBag));
            Assert.IsInstanceOfType(stack.PropertyBags.Skip(2).First(), typeof(SPWebAppPropertyBag));
            Assert.IsInstanceOfType(stack.PropertyBags.Skip(3).First(), typeof(SPFarmPropertyBag));
        }