public void AuthenticateNonResident2() { var client = new MdlpClient(credentials: new NonResidentCredentials { ClientID = ClientID2, ClientSecret = ClientSecret2, UserID = UserStarter2, Password = UserPassword2 }) { Tracer = WriteLine }; // the second user doesn't seem to have the DOWNLOAD_DOCUMENT permission => Forbidden, error 403 var ex = Assert.Throws <MdlpException>(() => client.GetDocumentMetadata(TestDocumentID)); Assert.AreEqual(HttpStatusCode.Forbidden, ex.StatusCode); // 403 // logged out client.Logout(); // the next operation is not authorized ex = Assert.Throws <MdlpException>(() => client.GetDocumentMetadata(TestDocumentID)); Assert.AreEqual(HttpStatusCode.Unauthorized, ex.StatusCode); // 401 }
public void FormatHeadersTest() { Assert.AreEqual("headers: none" + CR, MdlpClient.FormatHeaders(null)); Assert.AreEqual("headers: none" + CR, MdlpClient.FormatHeaders(new Tuple <string, object> [0])); Assert.AreEqual(@"headers: { Content-type = text/plain } ", MdlpClient.FormatHeaders(new[] { Tuple.Create("Content-type", "text/plain" as object) })); }
public void FormatBodyTest() { Assert.AreEqual(string.Empty, MdlpClient.FormatBody(null as string)); Assert.AreEqual(string.Empty, MdlpClient.FormatBody(new RequestBody(string.Empty, string.Empty, null))); Assert.AreEqual("body: Hello!" + CR, MdlpClient.FormatBody(new RequestBody("Text/plain", string.Empty, "Hello!"))); Assert.AreEqual(@"body: { ""some"": 1 } ", MdlpClient.FormatBody(new RequestBody("application/json", string.Empty, "{\"some\": 1}"))); }
public override void Dispose() { if (Client != null) { Client.Tracer = null; Client.Dispose(); Client = null; } base.Dispose(); }
private string RegisterMdlpTestUser(MdlpClient client, int number) { return(client.RegisterUser(SystemID1, new NonResidentUser { FirstName = "mdlp", MiddleName = "api", LastName = "client", Email = "mdlp" + number + "@mdlpclient.github.com", Password = "******" })); }
protected override MdlpClient CreateClient() { var res = new MdlpClient(credentials: new ResidentCredentials { ClientID = ClientID1, ClientSecret = ClientSecret1, UserID = TestUserThumbprint, }, baseUrl: MdlpClient.SandboxApiHttps) { Tracer = WriteLine, }; res.Client.RemoteCertificateValidationCallback += (sender, certificate, chain, errors) => true; return(res); }
public void AuthenticateResident() { var client = new MdlpClient(credentials: new ResidentCredentials { ClientID = ClientID1, ClientSecret = ClientSecret1, UserID = TestUserThumbprint, }) { Tracer = WriteLine }; // the document is available to the test user var md = client.GetDocumentMetadata(TestDocumentID); Assert.NotNull(md); Assert.AreEqual(TestDocumentID, md.DocumentID); }
public void FormatTimingsTest() { Assert.AreEqual(string.Empty, MdlpClient.FormatTimings(null, 0)); Assert.AreEqual(@"timings: { started: 2020-04-14 } ", MdlpClient.FormatTimings(new DateTime(2020, 04, 14), 0)); Assert.AreEqual(@"timings: { elapsed: 0:00:00.032 } ", MdlpClient.FormatTimings(null, 32)); Assert.AreEqual(@"timings: { started: 2020-04-14 10:20:30 elapsed: 0:00:00.1 } ", MdlpClient.FormatTimings(new DateTime(2020, 04, 14, 10, 20, 30), 100)); }
public void AuthenticateNonResident1() { // the client is not connected until the first call is performed var client = new MdlpClient(credentials: new NonResidentCredentials { ClientID = ClientID1, ClientSecret = ClientSecret1, UserID = UserStarter1, Password = UserPassword1 }) { Tracer = WriteLine }; // the next line authenticates, then it requests a document var md = client.GetDocumentMetadata(TestDocumentID); Assert.NotNull(md); Assert.AreEqual(TestDocumentID, md.DocumentID); }
public void RegisterMdlpTestUser() { // starter_resident_1 and starter_resident2 are blocked, so use another account instead var client = new MdlpClient(credentials: new ResidentCredentials { ClientID = ClientID1, ClientSecret = ClientSecret1, UserID = TestUserThumbprint, }, baseUrl: MdlpClient.StageApiHttps) { Tracer = WriteLine }; // register new test users to use instead of starter_resident1/2 using (client) { WriteLine("MDLP Test user1: {0}", RegisterMdlpTestUser(client, 1)); WriteLine("MDLP Test user2: {0}", RegisterMdlpTestUser(client, 2)); } }
public void AuthenticateNonResident2Error400() { var client = new MdlpClient(credentials: new NonResidentCredentials { ClientID = ClientID1, ClientSecret = ClientSecret1, UserID = UserStarter2, Password = UserPassword2 }) { Tracer = WriteLine }; // the second user's sysId mismatch => BadRequest, error 400 var ex = Assert.Throws <MdlpException>(() => { client.GetDocumentMetadata(TestDocumentID); }); Assert.AreEqual(HttpStatusCode.BadRequest, ex.StatusCode); // 400 }
public void ResourceNotFoundDifferentErrorMessages() { var client = new MdlpClient(credentials: new NonResidentCredentials { ClientID = ClientID2, ClientSecret = ClientSecret2, UserID = UserStarter2, Password = UserPassword2 }) { Tracer = WriteLine }; // в теле ответа по неверному адресу branches/filter посылается HTML var ex = Assert.Throws <MdlpException>(() => client.Get("branches/filter")); Assert.AreEqual(HttpStatusCode.NotFound, ex.StatusCode); Assert.IsTrue(ex.Message.Contains("404")); Assert.IsTrue(ex.Message.Contains("nginx")); // а тут по умолчанию RestSharp сообщает ошибку десериализации XML ex = Assert.Throws <MdlpException>(() => client.Get <EmptyResponse>("branches/filter")); Assert.AreEqual(HttpStatusCode.NotFound, ex.StatusCode); Assert.IsTrue(ex.Message.Contains("404")); Assert.IsTrue(ex.Message.Contains("nginx")); // а здесь ресурс возвращает типизированный объект ErrorResponse ex = Assert.Throws <MdlpException>(() => client.Get <EmptyResponse>("reestr/shtuchek/dryuchek")); Assert.AreEqual(HttpStatusCode.NotFound, ex.StatusCode); Assert.AreEqual("Not Found", ex.Message); // только в этом последнем случае у нас есть ErrorResponse var error = ex.ErrorResponse; Assert.NotNull(error); Assert.AreEqual("Not Found", error.Message); Assert.AreEqual(404, error.StatusCode); Assert.NotNull(error.Path); Assert.IsTrue(error.Path.EndsWith("dryuchek")); }
public void Chapter6_01_09_GetCurrentCertificates() { // non-resident user doesn't have certificates var certs = Client.GetCurrentCertificates(0, 10); Assert.IsNotNull(certs); Assert.IsNotNull(certs.Certificates); Assert.AreEqual(0, certs.Total); Assert.AreEqual(0, certs.Certificates.Length); // resident user does not have access rights? var ex = Assert.Throws <MdlpException>(() => { var client = new MdlpClient(credentials: new ResidentCredentials { ClientID = ClientID1, ClientSecret = ClientSecret1, UserID = TestUserThumbprint, }) { Tracer = WriteLine }; certs = client.GetCurrentCertificates(0, 10); Assert.IsNotNull(certs); Assert.IsNotNull(certs.Certificates); Assert.AreEqual(1, certs.Total); Assert.AreEqual(1, certs.Certificates.Length); var cert = certs.Certificates[0]; Assert.AreEqual(TestCertificateThumbprint, cert.PublicCertificateThumbprint); AssertRequired(cert); }); Assert.AreEqual(HttpStatusCode.Forbidden, ex.StatusCode); }