-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAnalytics2Fixture.cs
More file actions
97 lines (85 loc) · 4.26 KB
/
Analytics2Fixture.cs
File metadata and controls
97 lines (85 loc) · 4.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
using Couchbase.AnalyticsClient.HTTP;
using Couchbase.AnalyticsClient.Options;
using Microsoft.Extensions.Configuration;
namespace Couchbase.AnalyticsClient.FunctionalTests.Fixtures;
public class Analytics2Fixture : IDisposable
{
public FixtureSettings FixtureSettings { get; private set; }
public ClusterOptions ClusterOptions { get; private set; }
public Cluster Cluster { get; private set; }
public Credential Credential { get; private set; }
public string CapellaCaCert =
"-----BEGIN CERTIFICATE-----\n" +
"MIIFWzCCA0OgAwIBAgIBATANBgkqhkiG9w0BAQsFADA4MTYwNAYDVQQDEy1kaW5v\n" +
"Y2VydC0zRDBGQTIwOS1DQ0JCLTU3RkQtOUUzRC1BNzUwQ0ZBNjQ5MUIwHhcNMjUw\n" +
"MTAxMDAwMDAwWhcNMzUwMTAxMDAwMDAwWjAkMSIwIAYDVQQDExlkaW5vY2VydC1j\n" +
"bHVzdGVyLTVlMDdiZWQ3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\n" +
"yK8pzDlROFMiYyKhrZysuX5FRqZ+CYL0wCj6EvHFKG14VZc1NLTpQUafoqnI6K5l\n" +
"0/Vw6u3PClauHvg+xPGT1AZ7tcXFCOwqQWUBRi9qTsoNj6kt8XuLJvK7KSXx9wIB\n" +
"Sckfa8B7fpLECUxZqoTbo517b6Pvk9yOFbq9iqhWCPQ1BMPC4eTku889Quso1tqb\n" +
"gsXXzp70SfunFMfdQrRH8mJhFotrhxLEmVFPT9iHarSsxj2tdKWAjoKprkXQhrUF\n" +
"4PHcU6cXqBAAYw3/EFbJErgBQVxGWe9H0d1XIrjPrsEc+db2EuVdSrNBCnG8O1jp\n" +
"w75R0D+gN7XN9n3yFEUscQ/qrK9CTkZpu5IHk7DbFUWihPlAINnjzztqblLeOV35\n" +
"gmXSQUQ4kVniZMfxveYvvCnq9IioWTmCfRsVU9ZBF9RFrLK0sq3ILFwwH96gd6VR\n" +
"D3DDEdX/5huSrxGdbqMBQUiNg7xZ6rgx0iL6t18mhMCqIZnm/3eV5jtJU1cZx4LY\n" +
"GBuP2PYndyu98QuMm2bUE/9e61IPYK5vvyoOtA5tCpBRRdEaRQz99K+8igua2OBf\n" +
"4n/UJjQkFtlJP7u8WYSV7tCSuXGzb1vRdaN2lA/kLUlFhCVnphos6DmmJ666/+sy\n" +
"v/axWPejz1tEBIdWWQLiAaK4nnxAt2x55tqYDoXM3TkCAwEAAaOBgzCBgDAOBgNV\n" +
"HQ8BAf8EBAMCAoQwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMA8GA1Ud\n" +
"EwEB/wQFMAMBAf8wHQYDVR0OBBYEFIUCQxbxrDaRdB2smeisSVYHR4/qMB8GA1Ud\n" +
"IwQYMBaAFCGNjDgjgLrKXM1bp9FomV6wm+6rMA0GCSqGSIb3DQEBCwUAA4ICAQAU\n" +
"7Wfq+B+8yBh7EGQ5BizMoUq744hyKA4NXXcxrLi2StCW6+p+y72eFQzsWQ8/XiOa\n" +
"0V+vukMie8pwqi0KFzRM7f2cTyjZf0kvXYnzBHgDjAsN8cl5k6vvt1AT7YCX4IZU\n" +
"r3T3g1C/NDGjP+5jEZuXd5BYMC4MEv/Wx2RmT6GVCpLsQN6j3ZsVDsrvoUT2FwDr\n" +
"rWymU6HBnhVNwpTGMEsmlHsjTmFmVElxRazHPHSp+pqCyUhIQLrZWn95DsmW11WH\n" +
"0vvfhbV/OCvf9xCtktSfnRM5T81j5LWwv6PMWoFWXenYfVs6/4g916aBFwrzYQY7\n" +
"PH0LoGoRsePvVh3iucjsPjrwPlemsHn6XAaf/qZ1PWnhyS0qFnJfvRpvGgB474Vy\n" +
"2yobOYvF8vDh/FHSzF19jedpu3wChB5BRv9LSRhgKBUiv7HBvMLYBEyzRhHmuww7\n" +
"675it1XG+WWUPtToETMkMqf6XBxZyGNlQnHJZ0KmkuvwhoaNmj8+/mQnPpOVBRU4\n" +
"PGDFv04GTEnFbQG/o7NxYMnTbz/0Df8Rj07n60ZeA8zKkYuxGLn/RrXUX7w9vuaM\n" +
"fF/Pd80FtBKb0uvr6bpo1Chw6XaCi2Phc6S8A69Ea5uAsgWg7CxqNZGHwc2AHvkd\n" +
"jVdwvwO8oLhQUli14cQyj41pEMCgdFB3YFAJapSpsw==\n" +
"-----END CERTIFICATE-----\n";
public Analytics2Fixture()
{
FixtureSettings = GetFixtureSettings();
ClusterOptions = CreateClusterOptions();
Credential = new Credential(FixtureSettings.Username, FixtureSettings.Password!);
Cluster = CreateCluster();
}
/// <summary>
/// Creates new ClusterOptions and Cluster instances.
/// </summary>
/// <param name="clusterOptions">The ClusterOptions to be passed. If none are specified, the Fixture's are used.</param>
public void ResetCluster(ClusterOptions? clusterOptions = null)
{
ClusterOptions = clusterOptions ?? CreateClusterOptions();
ClusterOptions.ConnectionString = FixtureSettings.ConnectionString;
Cluster = CreateCluster();
}
private FixtureSettings GetFixtureSettings()
{
return new ConfigurationBuilder()
.AddJsonFile("settings.json")
.Build()
.GetSection("TestSettings")
.Get<FixtureSettings>()!; // Null-forgiving so it fails here if the deserialization fails
}
private ClusterOptions CreateClusterOptions(Action<ClusterOptions>? configure = null)
{
var options = new ClusterOptions();
configure?.Invoke(options);
return options;
}
private Cluster CreateCluster()
{
return Cluster.Create(
FixtureSettings.ConnectionString!,
Credential,
ClusterOptions);
}
public void Dispose()
{
Cluster?.Dispose();
}
}