You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

189 lines
8.0 KiB

  1. /*
  2. * MinIO .NET Library for Amazon S3 Compatible Cloud Storage,
  3. * (C) 2019, 2020 MinIO, Inc.
  4. *
  5. * Licensed under the Apache License, Version 2.0 (the "License");
  6. * you may not use this file except in compliance with the License.
  7. * You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. using System;
  18. using System.Net;
  19. namespace Minio.Functional.Tests
  20. {
  21. class Program
  22. {
  23. public static void Main(string[] args)
  24. {
  25. string endPoint = null;
  26. string accessKey = null;
  27. string secretKey = null;
  28. string enableHttps = "0";
  29. string kmsEnabled = "0";
  30. bool useAWS = Environment.GetEnvironmentVariable("AWS_ENDPOINT") != null;
  31. if (Environment.GetEnvironmentVariable("SERVER_ENDPOINT") != null)
  32. {
  33. endPoint = Environment.GetEnvironmentVariable("SERVER_ENDPOINT");
  34. accessKey = Environment.GetEnvironmentVariable("ACCESS_KEY");
  35. secretKey = Environment.GetEnvironmentVariable("SECRET_KEY");
  36. enableHttps = Environment.GetEnvironmentVariable("ENABLE_HTTPS");
  37. kmsEnabled = Environment.GetEnvironmentVariable("ENABLE_KMS");
  38. }
  39. else
  40. {
  41. endPoint = "play.min.io";
  42. accessKey = "Q3AM3UQ867SPQQA43P2F";
  43. secretKey = "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG";
  44. enableHttps = "1";
  45. kmsEnabled = "1";
  46. }
  47. MinioClient minioClient = null;
  48. if (enableHttps == "1")
  49. // WithSSL() enables SSL support in MinIO client
  50. minioClient = new MinioClient(endPoint, accessKey, secretKey).WithSSL();
  51. else
  52. minioClient = new MinioClient(endPoint, accessKey, secretKey);
  53. // Assign parameters before starting the test
  54. string bucketName = FunctionalTest.GetRandomName();
  55. string objectName = FunctionalTest.GetRandomName();
  56. string destBucketName = FunctionalTest.GetRandomName();
  57. string destObjectName = FunctionalTest.GetRandomName();
  58. // Set app Info
  59. minioClient.SetAppInfo("app-name", "app-version");
  60. // Set HTTP Tracing On
  61. // minioClient.SetTraceOn(new JsonNetLogger());
  62. // Set HTTP Tracing Off
  63. // minioClient.SetTraceOff();
  64. string runMode = Environment.GetEnvironmentVariable("MINT_MODE");
  65. if (!string.IsNullOrEmpty(runMode) && runMode == "core")
  66. {
  67. FunctionalTest.RunCoreTests(minioClient);
  68. Environment.Exit(0);
  69. }
  70. FunctionalTest.ListenBucketNotificationsAsync_Test1(minioClient).Wait();
  71. // Check if bucket exists
  72. FunctionalTest.BucketExists_Test(minioClient).Wait();
  73. // Create a new bucket
  74. FunctionalTest.MakeBucket_Test1(minioClient).Wait();
  75. FunctionalTest.MakeBucket_Test2(minioClient).Wait();
  76. FunctionalTest.MakeBucket_Test5(minioClient).Wait();
  77. if (useAWS)
  78. {
  79. FunctionalTest.MakeBucket_Test3(minioClient).Wait();
  80. FunctionalTest.MakeBucket_Test4(minioClient).Wait();
  81. }
  82. // Test removal of bucket
  83. FunctionalTest.RemoveBucket_Test1(minioClient).Wait();
  84. // Test ListBuckets function
  85. FunctionalTest.ListBuckets_Test(minioClient).Wait();
  86. // Test Putobject function
  87. FunctionalTest.PutObject_Test1(minioClient).Wait();
  88. FunctionalTest.PutObject_Test2(minioClient).Wait();
  89. FunctionalTest.PutObject_Test3(minioClient).Wait();
  90. FunctionalTest.PutObject_Test4(minioClient).Wait();
  91. FunctionalTest.PutObject_Test5(minioClient).Wait();
  92. FunctionalTest.PutObject_Test6(minioClient).Wait();
  93. FunctionalTest.PutObject_Test7(minioClient).Wait();
  94. FunctionalTest.PutObject_Test8(minioClient).Wait();
  95. // Test StatObject function
  96. FunctionalTest.StatObject_Test1(minioClient).Wait();
  97. // Test GetObjectAsync function
  98. FunctionalTest.GetObject_Test1(minioClient).Wait();
  99. FunctionalTest.GetObject_Test2(minioClient).Wait();
  100. FunctionalTest.GetObject_Test3(minioClient).Wait();
  101. // Test File GetObject and PutObject functions
  102. FunctionalTest.FGetObject_Test1(minioClient).Wait();
  103. // FIX=> FPutObject_Test1(minioClient).Wait();
  104. FunctionalTest.FPutObject_Test2(minioClient).Wait();
  105. // Test SelectObjectContentAsync function
  106. FunctionalTest.SelectObjectContent_Test(minioClient).Wait();
  107. // Test ListObjectAsync function
  108. FunctionalTest.ListObjects_Test1(minioClient).Wait();
  109. FunctionalTest.ListObjects_Test2(minioClient).Wait();
  110. FunctionalTest.ListObjects_Test3(minioClient).Wait();
  111. FunctionalTest.ListObjects_Test4(minioClient).Wait();
  112. FunctionalTest.ListObjects_Test5(minioClient).Wait();
  113. // Test RemoveObjectAsync function
  114. FunctionalTest.RemoveObject_Test1(minioClient).Wait();
  115. FunctionalTest.RemoveObjects_Test2(minioClient).Wait();
  116. // Test CopyObjectAsync function
  117. FunctionalTest.CopyObject_Test1(minioClient).Wait();
  118. FunctionalTest.CopyObject_Test2(minioClient).Wait();
  119. FunctionalTest.CopyObject_Test3(minioClient).Wait();
  120. FunctionalTest.CopyObject_Test4(minioClient).Wait();
  121. FunctionalTest.CopyObject_Test5(minioClient).Wait();
  122. FunctionalTest.CopyObject_Test6(minioClient).Wait();
  123. FunctionalTest.CopyObject_Test7(minioClient).Wait();
  124. FunctionalTest.CopyObject_Test8(minioClient).Wait();
  125. // Test SetPolicyAsync function
  126. FunctionalTest.SetBucketPolicy_Test1(minioClient).Wait();
  127. // Test Presigned Get/Put operations
  128. FunctionalTest.PresignedGetObject_Test1(minioClient).Wait();
  129. FunctionalTest.PresignedGetObject_Test2(minioClient).Wait();
  130. FunctionalTest.PresignedGetObject_Test3(minioClient).Wait();
  131. FunctionalTest.PresignedPutObject_Test1(minioClient).Wait();
  132. FunctionalTest.PresignedPutObject_Test2(minioClient).Wait();
  133. // Test incomplete uploads
  134. FunctionalTest.ListIncompleteUpload_Test1(minioClient).Wait();
  135. FunctionalTest.ListIncompleteUpload_Test2(minioClient).Wait();
  136. FunctionalTest.ListIncompleteUpload_Test3(minioClient).Wait();
  137. FunctionalTest.RemoveIncompleteUpload_Test(minioClient).Wait();
  138. // Test GetBucket policy
  139. FunctionalTest.GetBucketPolicy_Test1(minioClient).Wait();
  140. // Test encryption
  141. if (enableHttps == "1")
  142. {
  143. ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
  144. FunctionalTest.PutGetStatEncryptedObject_Test1(minioClient).Wait();
  145. FunctionalTest.PutGetStatEncryptedObject_Test2(minioClient).Wait();
  146. FunctionalTest.EncryptedCopyObject_Test1(minioClient).Wait();
  147. FunctionalTest.EncryptedCopyObject_Test2(minioClient).Wait();
  148. }
  149. if (kmsEnabled != null && kmsEnabled == "1")
  150. {
  151. FunctionalTest.PutGetStatEncryptedObject_Test3(minioClient).Wait();
  152. FunctionalTest.EncryptedCopyObject_Test3(minioClient).Wait();
  153. FunctionalTest.EncryptedCopyObject_Test4(minioClient).Wait();
  154. }
  155. }
  156. }
  157. }