Skip to content

Commit 3237c8e

Browse files
PublicIpAddressObject
1 parent ebfa508 commit 3237c8e

File tree

5 files changed

+58
-11
lines changed

5 files changed

+58
-11
lines changed

experiments/Azure.Experiments/Azure.Experiments.Tests/ComputeTest.cs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
using Xunit;
22
using Microsoft.Azure.Management.Compute;
3+
using System.Threading.Tasks;
34

45
namespace Azure.Experiments.Tests
56
{
67
public class ComputeTest
78
{
89
[Fact]
9-
public async void ResourceGroupTest()
10+
public async Task ResourceGroupTest()
1011
{
1112
var c = Credentials.Get();
1213
var rg = new ResourceGroupObject("My");
@@ -16,7 +17,7 @@ public async void ResourceGroupTest()
1617
}
1718

1819
[Fact]
19-
public async void VirtualNetworkTest()
20+
public async Task VirtualNetworkTest()
2021
{
2122
var c = Credentials.Get();
2223
var rg = new ResourceGroupObject("My1");
@@ -26,7 +27,16 @@ public async void VirtualNetworkTest()
2627
}
2728

2829
[Fact]
29-
public async void Test1()
30+
public async Task PublicIpAddressTest()
31+
{
32+
var c = Credentials.Get();
33+
var rg = new ResourceGroupObject("MyPIA");
34+
var pia = new PublicIpAddressObject("MyPIA", rg);
35+
var info = await pia.GetOrCreateAsync(c);
36+
}
37+
38+
[Fact]
39+
public async Task Test1()
3040
{
3141
var c = Credentials.Get();
3242
var client = new ComputeManagementClient(c.Credentials)

experiments/Azure.Experiments/Azure.Experiments/Context.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Microsoft.Rest;
1+
using Microsoft.Azure.Management.Network;
2+
using Microsoft.Rest;
23

34
namespace Azure.Experiments
45
{
@@ -13,5 +14,11 @@ public Context(ServiceClientCredentials credentials, string subscriptionId)
1314
public ServiceClientCredentials Credentials { get; }
1415

1516
public string SubscriptionId { get; }
17+
18+
public NetworkManagementClient CreateNetwork()
19+
=> new NetworkManagementClient(Credentials)
20+
{
21+
SubscriptionId = SubscriptionId
22+
};
1623
}
1724
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using Microsoft.Azure.Management.Network;
2+
using Microsoft.Azure.Management.Network.Models;
3+
using System;
4+
using System.Threading.Tasks;
5+
6+
namespace Azure.Experiments
7+
{
8+
public sealed class PublicIpAddressObject :
9+
ResourceObject<PublicIPAddress, IPublicIPAddressesOperations>
10+
{
11+
public PublicIpAddressObject(string name, ResourceGroupObject rg) : base(name, rg)
12+
{
13+
}
14+
15+
protected override Task<PublicIPAddress> CreateAsync(IPublicIPAddressesOperations c)
16+
=> c.CreateOrUpdateAsync(
17+
ResourceGroupName,
18+
Name,
19+
new PublicIPAddress { Location = "eastus" });
20+
21+
protected override IPublicIPAddressesOperations CreateClient(Context c)
22+
=> c.CreateNetwork().PublicIPAddresses;
23+
24+
protected override Task DeleteAsync(IPublicIPAddressesOperations c)
25+
{
26+
throw new NotImplementedException();
27+
}
28+
29+
protected override Task<PublicIPAddress> GetOrThrowAsync(IPublicIPAddressesOperations c)
30+
=> c.GetAsync(ResourceGroupName, Name);
31+
}
32+
}

experiments/Azure.Experiments/Azure.Experiments/AzureResource.cs renamed to experiments/Azure.Experiments/Azure.Experiments/ResourceObject.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
namespace Azure.Experiments
55
{
6-
public abstract class AzureResource<T, C> : AzureObject<T, C>
6+
public abstract class ResourceObject<T, C> : AzureObject<T, C>
77
where T : class
88
{
99
protected string ResourceGroupName { get; }
1010

11-
protected AzureResource(
11+
protected ResourceObject(
1212
string name,
1313
ResourceGroupObject rg,
1414
IEnumerable<AzureObject> dependencies)
@@ -17,7 +17,7 @@ protected AzureResource(
1717
ResourceGroupName = rg.Name;
1818
}
1919

20-
protected AzureResource(
20+
protected ResourceObject(
2121
string name,
2222
ResourceGroupObject rg)
2323
: this(name, rg, Enumerable.Empty<AzureObject>())

experiments/Azure.Experiments/Azure.Experiments/VirtualNetworkObject.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
namespace Azure.Experiments
66
{
77
public sealed class VirtualNetworkObject :
8-
AzureResource<VirtualNetwork, IVirtualNetworksOperations>
8+
ResourceObject<VirtualNetwork, IVirtualNetworksOperations>
99
{
1010
public VirtualNetworkObject(
1111
string name,
@@ -30,9 +30,7 @@ protected override Task<VirtualNetwork> CreateAsync(IVirtualNetworksOperations c
3030
});
3131

3232
protected override IVirtualNetworksOperations CreateClient(Context c)
33-
=> new NetworkManagementClient(c.Credentials)
34-
{ SubscriptionId = c.SubscriptionId }
35-
.VirtualNetworks;
33+
=> c.CreateNetwork().VirtualNetworks;
3634

3735
protected override Task DeleteAsync(IVirtualNetworksOperations c)
3836
=> c.DeleteAsync(ResourceGroupName, Name);

0 commit comments

Comments
 (0)