public void ToStringSerialisesAllValues()
        {
            DiagnoseSecurityResponse response = new DiagnoseSecurityResponse();

            response.ErrorMessages.Add(new ErrorMessage("Error 1"));
            response.ErrorMessages.Add(new ErrorMessage("Error 2"));
            response.RequestIdentifier = "request";
            response.Result            = ResponseResult.Success;
            response.Timestamp         = DateTime.Now;
            SecurityCheckDiagnostics diagnostics = new SecurityCheckDiagnostics();

            diagnostics.IsAllowed  = true;
            diagnostics.Permission = "testing";
            diagnostics.Project    = "test project";
            diagnostics.User       = "******";
            response.Diagnostics.Add(diagnostics);
            string actual   = response.ToString();
            string expected = string.Format(System.Globalization.CultureInfo.CurrentCulture, "<diagnoseSecurityResponse xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " +
                                            "timestamp=\"{2:yyyy-MM-ddTHH:mm:ss.FFFFFFFzzz}\" identifier=\"{0}\" result=\"{1}\">" +
                                            "<error>Error 1</error>" +
                                            "<error>Error 2</error>" +
                                            "<diagnosis permission=\"testing\" project=\"test project\" " +
                                            "user=\"test user\" allowed=\"true\" />" +
                                            "</diagnoseSecurityResponse>",
                                            response.RequestIdentifier,
                                            response.Result,
                                            response.Timestamp);

            XDocument.Parse(actual).Should().BeEquivalentTo(XDocument.Parse(expected));
        }
 public void ToStringSerialisesAllValues()
 {
     DiagnoseSecurityResponse response = new DiagnoseSecurityResponse();
     response.ErrorMessages.Add(new ErrorMessage("Error 1"));
     response.ErrorMessages.Add(new ErrorMessage("Error 2"));
     response.RequestIdentifier = "request";
     response.Result = ResponseResult.Success;
     response.Timestamp = DateTime.Now;
     SecurityCheckDiagnostics diagnostics = new SecurityCheckDiagnostics();
     diagnostics.IsAllowed = true;
     diagnostics.Permission = "testing";
     diagnostics.Project = "test project";
     diagnostics.User = "******";
     response.Diagnostics.Add(diagnostics);
     string actual = response.ToString();
     string expected = string.Format("<diagnoseSecurityResponse xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " +
         "timestamp=\"{2:yyyy-MM-ddTHH:mm:ss.FFFFFFFzzz}\" identifier=\"{0}\" result=\"{1}\">" +
         "<error>Error 1</error>" +
         "<error>Error 2</error>" +
         "<diagnosis permission=\"testing\" project=\"test project\" " +
         "user=\"test user\" allowed=\"true\" />" +
         "</diagnoseSecurityResponse>",
         response.RequestIdentifier,
         response.Result,
         response.Timestamp);
     Assert.AreEqual(expected, actual);
 }
 /// <summary>
 /// Checks the security permissions for a user against one or more projects.
 /// </summary>
 /// <param name="request"></param>
 /// <returns>A set of diagnostics information.</returns>
 public DiagnoseSecurityResponse DiagnoseSecurityPermissions(DiagnoseSecurityRequest request)
 {
     List<SecurityCheckDiagnostics> diagnoses = new List<SecurityCheckDiagnostics>();
     DiagnoseSecurityResponse response = new DiagnoseSecurityResponse(RunServerRequest(request,
         SecurityPermission.ViewSecurity,
         SecurityEvent.DiagnoseSecurityPermissions,
         delegate
         {
             Array permissions = Enum.GetValues(typeof(SecurityPermission));
             foreach (string projectName in request.Projects)
             {
                 if (string.IsNullOrEmpty(projectName))
                 {
                     Log.Info(string.Format(CultureInfo.CurrentCulture, "DiagnoseServerPermission for user {0}", request.UserName));
                 }
                 else
                 {
                     Log.Info(string.Format(CultureInfo.CurrentCulture, "DiagnoseProjectPermission for user {0} project {1}", request.UserName, projectName));
                 }
                 foreach (SecurityPermission permission in permissions)
                 {
                     SecurityCheckDiagnostics diagnostics = new SecurityCheckDiagnostics();
                     diagnostics.Permission = permission.ToString();
                     diagnostics.Project = projectName;
                     diagnostics.User = request.UserName;
                     diagnostics.IsAllowed = DiagnosePermission(request.UserName, projectName, permission);
                     diagnoses.Add(diagnostics);
                 }
             }
         }));
     response.Diagnostics = diagnoses;
     return response;
 }