Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
<PackageId>Microsoft.Azure.Management.Reservations</PackageId>
<Description>Microsoft.Azure.Management.Reservations Library</Description>
<AssemblyName>Microsoft.Azure.Management.Reservations</AssemblyName>
<Version>1.9.1-preview</Version>
<Version>1.10.0-preview</Version>
<PackageTags>Reservations;</PackageTags>
<PackageReleaseNotes>
Taking dependency on 10.0.3 version of Newtonsoft nuget package.
Using new 2019-04-01 api-version contract and adding Calculate and Purchase Reservation
</PackageReleaseNotes>
</PropertyGroup>
<PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
[assembly: AssemblyDescription("Provides management functionality for Microsoft Azure Reserved Instance Resources.")]

[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.9.1.0")]
[assembly: AssemblyFileVersion("1.10.0.0")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("Microsoft Azure .NET SDK")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ namespace Reservations.Tests.ScenarioTests
{
public class Common
{
public const string ReservationOrderId = "ffa7538a-2251-489d-82bf-7efcb8b346d7";
public const string ReservationId = "a110e78d-1ca6-4f88-a7c5-35076cda6c86";
public const string SubscriptionId = "caadc3f2-e83e-487c-9a14-41f74366467f";
public const string SubscriptionId = "796c84b3-7e3b-411a-a103-157a9ba99783";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,8 @@

namespace Reservations.Tests.ScenarioTests
{
public class NonReservationObjectTests : TestBase
{

string SubscriptionId = Common.SubscriptionId;

public class NonReservationObjectTests : ReservationsTestBase
{
[Fact]
public void TestGetCatalog()
{
Expand Down Expand Up @@ -101,13 +98,5 @@ public void TestListOperations()
}
}
}

private static string GetSessionsDirectoryPath()
{
System.Type something = typeof(Reservations.Tests.ScenarioTests.ReservationTests);
string executingAssemblyPath = something.GetTypeInfo().Assembly.Location;
return Path.Combine(Path.GetDirectoryName(executingAssemblyPath), "SessionRecords");
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,36 +14,34 @@
using System.Reflection;
using Xunit;
using System.Collections.Generic;
using System.Text.RegularExpressions;

namespace Reservations.Tests.ScenarioTests
{
public class ReservationOrderTests : TestBase
public class ReservationOrderTests : ReservationsTestBase
{
string ReservationOrderId = Common.ReservationOrderId;

internal static void ValidateReservationOrder(ReservationOrderResponse ReservationOrder)
[Fact]
public void TestReservationOrderOperations()
{
Assert.NotNull(ReservationOrder);
Assert.NotNull(ReservationOrder.Etag);
Assert.NotNull(ReservationOrder.Id);
Assert.NotNull(ReservationOrder.Name);
Assert.NotNull(ReservationOrder.Type);
var reservationOrder = PurchaseReservationOrder();
string reservationOrderId = ExtractIdsFromOrder(reservationOrder).Item1;

TestGetReservationOrder(reservationOrderId);
TestListReservationOrders();
}

[Fact]
public void TestGetReservationOrder()
private void TestGetReservationOrder(string reservationOrderId)
{
HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath();
using (MockContext context = MockContext.Start(this.GetType().FullName))
{
var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK });
var reservationOrder = reservationsClient.ReservationOrder.Get(ReservationOrderId);
var reservationOrder = reservationsClient.ReservationOrder.Get(reservationOrderId);
ValidateReservationOrder(reservationOrder);
}
}

[Fact]
public void TestListReservationOrders()
private void TestListReservationOrders()
{
HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath();
using (MockContext context = MockContext.Start(this.GetType().FullName))
Expand All @@ -57,12 +55,5 @@ public void TestListReservationOrders()
}
}
}

private static string GetSessionsDirectoryPath()
{
System.Type something = typeof(Reservations.Tests.ScenarioTests.ReservationOrderTests);
string executingAssemblyPath = something.GetTypeInfo().Assembly.Location;
return Path.Combine(Path.GetDirectoryName(executingAssemblyPath), "SessionRecords");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,35 +17,35 @@

namespace Reservations.Tests.ScenarioTests
{
public class ReservationTests : TestBase
public class ReservationTests : ReservationsTestBase
{

string ReservationOrderId = Common.ReservationOrderId;
string ReservationId = Common.ReservationId;

internal void ValidateReservation(ReservationResponse Reservation)
[Fact]
public void TestReservationOperations()
{
Assert.NotNull(Reservation);
Assert.NotNull(Reservation.Id);
Assert.NotNull(Reservation.Etag);
Assert.NotNull(Reservation.Name);
Assert.NotNull(Reservation.Properties);
Assert.NotNull(Reservation.Sku);
Assert.NotNull(Reservation.Type);

Assert.NotNull(Reservation.Properties.InstanceFlexibility);
Assert.NotNull(Reservation.Properties.ReservedResourceType);
Assert.NotNull(Reservation.Properties.SkuDescription);
var reservationOrder = PurchaseReservationOrder();

var idTuple = ExtractIdsFromOrder(reservationOrder);
string reservationOrderId = idTuple.Item1;
string reservationId = idTuple.Item2;

TestGetReservation(reservationOrderId, reservationId);
TestUpdateReservationToShared(reservationOrderId, reservationId);
TestUpdateReservationToSingle(reservationOrderId, reservationId);

TestSplitAndMerge(reservationOrderId);
TestListReservations(reservationOrderId);
TestListReservationRevisions(reservationOrderId, reservationId);
}

[Fact]
public void TestSplitAndMerge()

private void TestSplitAndMerge(string reservationOrderId)
{
HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath();
using (MockContext context = MockContext.Start(this.GetType().FullName))
{
var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK });
var reservations = reservationsClient.Reservation.List(ReservationOrderId);
var reservations = reservationsClient.Reservation.List(reservationOrderId);
var enumerator1 = reservations.GetEnumerator();
ReservationResponse validReservation = null;
while (enumerator1.MoveNext())
Expand All @@ -59,14 +59,14 @@ public void TestSplitAndMerge()
}
Assert.NotNull(validReservation);

ReservationId = validReservation.Id.Split('/')[6];
var reservationId = validReservation.Id.Split('/')[6];

// Begin split test
SplitRequest Split = new SplitRequest(
new List<int?>() { 1, 1 },
CreateResourceId(ReservationOrderId, ReservationId)
new List<int?>() { 1, 2 },
CreateResourceId(reservationOrderId, reservationId)
);
var splitResponse = reservationsClient.Reservation.Split(ReservationOrderId, Split);
var splitResponse = reservationsClient.Reservation.Split(reservationOrderId, Split);
Assert.NotNull(splitResponse);
Assert.True(splitResponse.Any());

Expand Down Expand Up @@ -97,11 +97,11 @@ public void TestSplitAndMerge()
MergeRequest Merge = new MergeRequest(
new List<string>()
{
CreateResourceId(ReservationOrderId, splitReservationId1),
CreateResourceId(ReservationOrderId, splitReservationId2)
CreateResourceId(reservationOrderId, splitReservationId1),
CreateResourceId(reservationOrderId, splitReservationId2)
}
);
var mergeResponse = reservationsClient.Reservation.Merge(ReservationOrderId, Merge);
var mergeResponse = reservationsClient.Reservation.Merge(reservationOrderId, Merge);
var enumerator3 = splitResponse.GetEnumerator();

ReservationResponse mergedReservation = null;
Expand All @@ -116,31 +116,27 @@ public void TestSplitAndMerge()

Assert.NotNull(mergedReservation);
ValidateReservation(mergedReservation);
ReservationId = mergedReservation.Id.Split('/')[6];

}
}

[Fact]
public void TestGetReservation()
private void TestGetReservation(string reservationOrderId, string reservationId)
{
HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath();
using (MockContext context = MockContext.Start(this.GetType().FullName))
{
var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK });
var reservation = reservationsClient.Reservation.Get(ReservationId, ReservationOrderId);
var reservation = reservationsClient.Reservation.Get(reservationId, reservationOrderId);
ValidateReservation(reservation);
}
}

[Fact]
public void TestUpdateReservationToShared()
private void TestUpdateReservationToShared(string reservationOrderId, string reservationId)
{
HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath();
using (MockContext context = MockContext.Start(this.GetType().FullName))
{
var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK });
var reservations = reservationsClient.Reservation.List(ReservationOrderId);
var reservations = reservationsClient.Reservation.List(reservationOrderId);
var enumerator1 = reservations.GetEnumerator();
ReservationResponse validReservation = null;
while (enumerator1.MoveNext())
Expand All @@ -154,21 +150,20 @@ public void TestUpdateReservationToShared()
}
Assert.NotNull(validReservation);

ReservationId = validReservation.Id.Split('/')[6];
reservationId = validReservation.Id.Split('/')[6];
Patch Patch = new Patch(AppliedScopeType.Shared, null, InstanceFlexibility.On);
var reservation = reservationsClient.Reservation.Update(ReservationOrderId, ReservationId, Patch);
var reservation = reservationsClient.Reservation.Update(reservationOrderId, reservationId, Patch);
ValidateReservation(reservation);
}
}

[Fact]
public void TestUpdateReservationToSingle()
private void TestUpdateReservationToSingle(string reservationOrderId, string reservationId)
{
HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath();
using (MockContext context = MockContext.Start(this.GetType().FullName))
{
var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK });
var reservations = reservationsClient.Reservation.List(ReservationOrderId);
var reservations = reservationsClient.Reservation.List(reservationOrderId);
var enumerator1 = reservations.GetEnumerator();
ReservationResponse validReservation = null;
while (enumerator1.MoveNext())
Expand All @@ -182,21 +177,20 @@ public void TestUpdateReservationToSingle()
}
Assert.NotNull(validReservation);

ReservationId = validReservation.Id.Split('/')[6];
reservationId = validReservation.Id.Split('/')[6];
Patch Patch = new Patch(AppliedScopeType.Single, new List<string>() { $"/subscriptions/{Common.SubscriptionId}" }, InstanceFlexibility.On);
var reservation = reservationsClient.Reservation.Update(ReservationOrderId, ReservationId, Patch);
var reservation = reservationsClient.Reservation.Update(reservationOrderId, reservationId, Patch);
ValidateReservation(reservation);
}
}

[Fact]
public void TestListReservations()
private void TestListReservations(string reservationOrderId)
{
HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath();
using (MockContext context = MockContext.Start(this.GetType().FullName))
{
var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK });
var ReservationList = reservationsClient.Reservation.List(ReservationOrderId);
var ReservationList = reservationsClient.Reservation.List(reservationOrderId);
Assert.NotNull(ReservationList);
Assert.True(ReservationList.Any());
var enumerator = ReservationList.GetEnumerator();
Expand All @@ -207,14 +201,13 @@ public void TestListReservations()
}
}

[Fact]
public void TestListReservationRevisions()
private void TestListReservationRevisions(string reservationOrderId, string reservationId)
{
HttpMockServer.RecordsDirectory = GetSessionsDirectoryPath();
using (MockContext context = MockContext.Start(this.GetType().FullName))
{
var reservationsClient = ReservationsTestUtilities.GetAzureReservationAPIClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK });
var revisions = reservationsClient.Reservation.ListRevisions(ReservationId, ReservationOrderId);
var revisions = reservationsClient.Reservation.ListRevisions(reservationId, reservationOrderId);
Assert.NotNull(revisions);
Assert.True(revisions.Any());
var enumerator = revisions.GetEnumerator();
Expand All @@ -224,17 +217,5 @@ public void TestListReservationRevisions()
}
}
}

private static string GetSessionsDirectoryPath()
{
System.Type something = typeof(Reservations.Tests.ScenarioTests.ReservationTests);
string executingAssemblyPath = something.GetTypeInfo().Assembly.Location;
return Path.Combine(Path.GetDirectoryName(executingAssemblyPath), "SessionRecords");
}

private string CreateResourceId(string ReservationOrderId, string ReservationId)
{
return string.Format("/providers/Microsoft.Capacity/reservationOrders/{0}/reservations/{1}", ReservationOrderId, ReservationId);
}
}
}
Loading