public void Execute_LogsMessage()
        {
            //Arrange
            var  args       = new LoggingOperationArgs();
            Guid createGuid = Guid.Empty;

            args.Message  = TestsConstants.TestGuidName;
            args.EventId  = -99;
            args.Category = TestsConstants.AreasCategories;
            args.Severity = (int)SandboxEventSeverity.Error;
            args.SiteID   = TestsConstants.TestGuid;

            SharePointServiceLocator.ReplaceCurrentServiceLocator(new ActivatingServiceLocator());
            ((ActivatingServiceLocator)SharePointServiceLocator.GetCurrent())
            .RegisterTypeMapping <ILogger, TestLogger>(InstantiationType.AsSingleton);

            var operation = new LoggingOperation();

            BSPFarm.SetLocal();
            MSPSite site;
            BSPWeb  bweb = new BSPWeb();
            var     mweb = new MSPWeb(bweb)
            {
                NameGet = () => "foo.bar",
            };


            MSPSite.ConstructorGuid = (instance, g) =>
            {
                site = new MSPSite(instance)
                {
                    Dispose    = () => { },
                    IDGet      = () => TestsConstants.TestGuid,
                    RootWebGet = () => mweb
                };

                createGuid = g;
            };


            //Act
            object target = operation.Execute(args);

            //Assert
            var logger = SharePointServiceLocator.GetCurrent().GetInstance <ILogger>() as TestLogger;

            Assert.AreEqual(TestsConstants.TestGuid, createGuid);
            Assert.IsTrue(logger.Message.Contains(args.Message));
            Assert.AreEqual(logger.Category, TestsConstants.AreasCategories);
            Assert.AreEqual(logger.EventId, args.EventId);
            Assert.AreEqual(logger.Severity, SandboxEventSeverity.Error);
        }
Beispiel #2
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);
        }
        public void Execute_WithWrongProxyArgsType_ReturnsArgumentException()
        {
            //Arrange
            var args = new LoggingOperationArgs();

            args.Message  = "foobar";
            args.EventId  = -1;
            args.Category = "foobar";
            args.Severity = (int)SandboxEventSeverity.Error;
            var operation = new TracingOperation();

            BSPFarm.SetLocal();

            //Act
            object target = operation.Execute(args);

            //Assert
            Assert.IsInstanceOfType(target, typeof(ArgumentException));
        }
Beispiel #4
0
        protected virtual void WriteToOperationsLogSandbox(string message, int eventId, SandboxEventSeverity?severity, string category)
        {
            if (SharePointLogger.canAccessSandboxLogging == -1)
            {
                if (SharePointEnvironment.ProxyInstalled(TracingOperationArgs.OperationAssemblyName, TracingOperationArgs.OperationTypeName))
                {
                    SharePointLogger.canAccessSandboxTracing = 1;
                }
                else
                {
                    SharePointLogger.canAccessSandboxTracing = 0;
                }
            }

            if (SharePointLogger.canAccessSandboxTracing == 1)
            {
                var args = new LoggingOperationArgs();
                args.Message  = message;
                args.EventId  = eventId;
                args.Category = category;
                args.Severity = (int?)severity;

                if (SPContext.Current != null)
                {
                    args.SiteID = SPContext.Current.Site.ID;
                }
                else
                {
                    args.SiteID = null;
                }

                var result = SPUtility.ExecuteRegisteredProxyOperation(
                    LoggingOperationArgs.OperationAssemblyName,
                    LoggingOperationArgs.OperationTypeName,
                    args);

                if (result != null && result.GetType().IsSubclassOf(typeof(System.Exception)))
                {
                    var ex = new LoggingException(Resources.SandboxLoggingFailed, (Exception)result);
                    throw ex;
                }
            }
        }