Skip to content

Commit

Permalink
fix inconsistent test-data and unit-tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ntruchsess committed Nov 13, 2024
1 parent 2e0d021 commit b7f08ed
Show file tree
Hide file tree
Showing 14 changed files with 77 additions and 45 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,4 @@ public record ProviderSubscriptionDetailData(
IEnumerable<SubscriptionAssignedConnectorData> ConnectorData,
ProcessStepTypeId? ProcessStepTypeId,
SubscriptionExternalServiceData ExternalService
);
);
Original file line number Diff line number Diff line change
Expand Up @@ -166,9 +166,10 @@ public OfferSubscription AttachAndModifyOfferSubscription(Guid offerSubscription
/// <inheritdoc />
public IAsyncEnumerable<(Guid OfferId, Guid SubscriptionId, string? OfferName, string SubscriptionUrl, Guid LeadPictureId, string Provider)> GetAllBusinessAppDataForUserIdAsync(Guid userId) =>
dbContext.CompanyUsers.AsNoTracking()
.Where(user => user.Id == userId)
.Where(user => user.Id == userId && user.Identity!.IdentityTypeId == IdentityTypeId.COMPANY_USER)
.SelectMany(user => user.Identity!.Company!.OfferSubscriptions.Where(subscription =>
subscription.Offer!.UserRoles.Any(ur => ur.IdentityAssignedRoles.Any(cu => cu.IdentityId == user.Id && cu.Identity!.IdentityTypeId == IdentityTypeId.COMPANY_USER)) &&
subscription.Offer!.OfferTypeId == OfferTypeId.APP &&
subscription.Offer.UserRoles.Any(ur => ur.IdentityAssignedRoles.Any(iar => iar.IdentityId == userId)) &&
subscription.AppSubscriptionDetail!.AppInstance != null &&
subscription.AppSubscriptionDetail.AppSubscriptionUrl != null))
.Select(offerSubscription => new ValueTuple<Guid, Guid, string?, string, Guid, string>(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
/********************************************************************************
* Copyright (c) 2022 BMW Group AG
* Copyright (c) 2022 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
/********************************************************************************
* Copyright (c) 2022 BMW Group AG
* Copyright (c) 2022 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -532,15 +532,27 @@ public async Task GetSubscriptionDetailForProvider_WithNotMatchingUserRoles_Thro
new UserRoleConfig("ClientTest", new[] {"Test"})
}
};
A.CallTo(() => _offerService.GetOfferSubscriptionDetailsForProviderAsync(offerId, subscriptionId, OfferTypeId.SERVICE, A<IEnumerable<UserRoleConfig>>._, A<WalletConfigData>._))
A.CallTo(() => _offerService.GetOfferSubscriptionDetailsForProviderAsync(A<Guid>._, A<Guid>._, A<OfferTypeId>._, A<IEnumerable<UserRoleConfig>>._, A<WalletConfigData>._))
.Returns(data);
var sut = new ServiceBusinessLogic(null!, _offerService, null!, null!, _identityService, Options.Create(settings));

// Act
var result = await sut.GetSubscriptionDetailForProvider(offerId, subscriptionId);

// Assert
result.Should().Be(data);
result.Should().Match<ProviderSubscriptionDetailData>(x =>
x.Id == data.Id &&
x.OfferSubscriptionStatus == data.OfferSubscriptionStatus &&
x.Name == data.Name &&
x.Customer == data.Customer &&
x.Bpn == data.Bpn &&
x.Contact.SequenceEqual(data.Contact) &&
x.TechnicalUserData.SequenceEqual(data.TechnicalUserData) &&
x.ConnectorData.SequenceEqual(data.ConnectorData) &&
x.ProcessStepTypeId == data.ProcessStepTypeId &&
x.ExternalService == data.ExternalService
);

A.CallTo(() => _offerService.GetOfferSubscriptionDetailsForProviderAsync(offerId, subscriptionId, OfferTypeId.SERVICE, A<IEnumerable<UserRoleConfig>>._, A<WalletConfigData>._))
.MustHaveHappenedOnceExactly();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ public async Task GetSubscriptionDetailForProvider_ReturnsExpected()
// Arrange
var serviceId = _fixture.Create<Guid>();
var subscriptionId = _fixture.Create<Guid>();
var data = _fixture.Create<OfferProviderSubscriptionDetailData>();
var data = _fixture.Create<ProviderSubscriptionDetailData>();
A.CallTo(() => _logic.GetSubscriptionDetailForProvider(serviceId, subscriptionId))
.Returns(data);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,13 +122,13 @@ public async Task GetAllBusinessAppDataForUserIdAsync_WithValidUser_ReturnsExpec
var (sut, _) = await CreateSut();

// Act
var result = await sut.GetAllBusinessAppDataForUserIdAsync(new("ac1cf001-7fbc-1f2f-817f-bce058020006")).ToListAsync();
var result = await sut.GetAllBusinessAppDataForUserIdAsync(new("8b42e6de-7b59-4217-a63c-198e83d93776")).ToListAsync();

// Assert
result.Should().NotBeNullOrEmpty();
result.Should().HaveCount(1);
result.First().SubscriptionUrl.Should().Be("https://ec-qas.d13fe27.kyma.ondemand.com");
result.First().OfferId.Should().Be(new Guid("a16e73b9-5277-4b69-9f8d-3b227495dfea"));
result.Should().ContainSingle().Which.Should().Match<(Guid OfferId, Guid SubscriptionId, string? OfferName, string SubscriptionUrl, Guid LeadPictureId, string Provider)>(x =>
x.SubscriptionUrl == "https://ec-qas.d13fe27.kyma.ondemand.com" &&
x.OfferId == new Guid("ac1cf001-7fbc-1f2f-817f-bce05744000b")
);
}

#endregion
Expand Down Expand Up @@ -246,7 +246,30 @@ public async Task GetOfferDetailsAndCheckUser_WithSubscriptionForOfferWithoutApp
#region GetOfferSubscriptionDetailForProviderAsync

[Fact]
public async Task GetOfferSubscriptionDetailForProviderAsync_ReturnsExpected()
public async Task GetOfferSubscriptionDetailForAppProviderAsync_ReturnsExpected()
{
// Arrange
var (sut, _) = await CreateSut();

// Act
var result = await sut.GetOfferSubscriptionDetailsForProviderAsync(new Guid("ac1cf001-7fbc-1f2f-817f-bce05744000b"), new Guid("0b2ca541-206d-48ad-bc02-fb61fbcb5552"), new Guid("0dcd8209-85e2-4073-b130-ac094fb47106"), OfferTypeId.APP, new[] { new Guid("7410693c-c893-409e-852f-9ee886ce94a6") });

// Assert
result.Exists.Should().BeTrue();
result.IsUserOfCompany.Should().BeTrue();
result.Details.Should().NotBeNull().And.Match<OfferProviderSubscriptionDetail>(x =>
x.Name == "Project Implementation: Earth Commerce" &&
x.Customer == "Bayerische Motorenwerke AG" &&
x.Bpn == "BPNL00000003AYRE" &&
x.Contact.SequenceEqual(new[] { "[email protected]" }) &&
x.OfferSubscriptionStatus == OfferSubscriptionStatusId.ACTIVE &&
x.TenantUrl == "https://ec-qas.d13fe27.kyma.ondemand.com" &&
x.AppInstanceId == "https://catenax-int-dismantler-s66pftcc.authentication.eu10.hana.ondemand.com" &&
x.ProcessSteps.Count() == 0);
}

[Fact]
public async Task GetOfferSubscriptionDetailForServiceProviderAsync_ReturnsExpected()
{
// Arrange
var (sut, _) = await CreateSut();
Expand All @@ -262,8 +285,8 @@ public async Task GetOfferSubscriptionDetailForProviderAsync_ReturnsExpected()
x.Customer == "CX-Operator" &&
x.Contact.SequenceEqual(new[] { "[email protected]" }) &&
x.OfferSubscriptionStatus == OfferSubscriptionStatusId.ACTIVE &&
x.TenantUrl == "https://ec-qas.d13fe27.kyma.ondemand.com" &&
x.AppInstanceId == "https://catenax-int-dismantler-s66pftcc.authentication.eu10.hana.ondemand.com" &&
x.TenantUrl == null &&
x.AppInstanceId == null &&
x.ProcessSteps.Count() == 3 &&
x.ProcessSteps.Count(y => y.ProcessStepTypeId == ProcessStepTypeId.AWAIT_START_AUTOSETUP && y.ProcessStepStatusId == ProcessStepStatusId.TODO) == 1);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,16 +56,20 @@ public async Task OfferSubscriptionView_GetAll_ReturnsExpected()
public async Task OfferSubscriptionView_GetSpecific_ReturnsExpected()
{
// Arrange
var subscriptionId = new Guid("3de6a31f-a5d1-4f60-aa3a-4b1a769becbf");
var subscriptionId = new Guid("0b2ca541-206d-48ad-bc02-fb61fbcb5552");
var sut = await CreateContext();

// Act
var result = await sut.OfferSubscriptionView.SingleOrDefaultAsync(x => x.SubscriptionId == subscriptionId);
result.Should().NotBeNull();
result!.SubscriptionId.Should().Be(subscriptionId);
result.OfferTypeId.Should().Be(OfferTypeId.SERVICE);
result.TechnicalUser.Should().Be(new Guid("d0c8ae19-d4f3-49cc-9cb4-6c766d4680f2"));
result.AppInstance.Should().Be(new Guid("ab25c218-9ab3-4f1a-b6f4-6394fbc33c5b"));
var result = await sut.OfferSubscriptionView.Where(x => x.SubscriptionId == subscriptionId).ToListAsync();
result.Should().HaveCount(2)
.And.AllSatisfy(x =>
x.Should().Match<PortalEntities.Views.OfferSubscriptionView>(x =>
x.SubscriptionId == subscriptionId &&
x.OfferTypeId == OfferTypeId.APP &&
x.AppInstance == new Guid("ab25c218-9ab3-4f1a-b6f4-6394fbc33c5a")))
.And.Satisfy(
x => x.TechnicalUser == new Guid("93eecd4e-ca47-4dd2-85bf-775ea72eb000"),
x => x.TechnicalUser == new Guid("d0c8ae19-d4f3-49cc-9cb4-6c766d4680f3"));
}

#endregion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,6 @@
"app_subscription_url": "https://ec-qas.d13fe27.kyma.ondemand.com",
"last_editor_id": null
},
{
"id": "88b0661c-cc22-4a4a-9721-fc4f3cec21f9",
"offer_subscription_id": "3de6a31f-a5d1-4f60-aa3a-4b1a769becbf",
"app_instance_id": "ab25c218-9ab3-4f1a-b6f4-6394fbc33c5b",
"app_subscription_url": "https://ec-qas.d13fe27.kyma.ondemand.com",
"last_editor_id": null
},
{
"id": "bedb45bf-7094-4da0-9e69-0695db782a16",
"offer_subscription_id": "ed4de48d-fd4b-4384-a72f-ecae3c6cc5ba",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,5 +68,15 @@
"identity_id": "8b42e6de-7b59-4217-a63c-198e83d93777",
"user_role_id": "7410693c-c893-409e-852f-9ee886ce94a6",
"last_editor_id": null
}
},
{
"identity_id": "8b42e6de-7b59-4217-a63c-198e83d93776",
"user_role_id": "7410693c-c893-409e-852f-9ee886ce94a6",
"last_editor_id": null
},
{
"identity_id": "8b42e6de-7b59-4217-a63c-198e83d93776",
"user_role_id": "efc20368-9e82-46ff-b88f-6495b9810253",
"last_editor_id": null
}
]
Original file line number Diff line number Diff line change
@@ -1,13 +1,4 @@
[
{
"id": "d0c8ae19-d4f3-49cc-9cb4-6c766d4680f2",
"name": "sa-test",
"description": "SA for offer subscription",
"technical_user_type_id": 2,
"technical_user_kind_id": 1,
"offer_subscription_id": "3DE6A31F-A5D1-4F60-AA3A-4B1A769BECBF",
"client_client_id":"sa-x-4"
},
{
"id": "d0c8ae19-d4f3-49cc-9cb4-6c766d4680f3",
"name": "sa-test",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,19 @@
{
"id": "aabcdfeb-6669-4c74-89f0-19cda090873e",
"user_role": "test",
"offer_id": "a16e73b9-5277-4b69-9f8d-3b227495dfea",
"offer_id": "9b957704-3505-4445-822c-d7ef80f27fcd",
"last_editor_id": null
},
{
"id": "efc20368-9e82-46ff-b88f-6495b9810254",
"user_role": "Company Admin",
"offer_id": "a16e73b9-5277-4b69-9f8d-3b227495dfea",
"offer_id": "9b957704-3505-4445-822c-d7ef80f27fcd",
"last_editor_id": null
},
{
"id": "efc20368-9e82-46ff-b88f-6495b9810255",
"user_role": "IT Admin",
"offer_id": "a16e73b9-5277-4b69-9f8d-3b227495dfea",
"offer_id": "9b957704-3505-4445-822c-d7ef80f27fcd",
"last_editor_id": null
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -292,9 +292,9 @@ public async Task GetOwnCompanyServiceAccountsUntracked_WithOwnerTrue_ReturnsExp

// Assert
result.Should().NotBeNull();
result!.Count.Should().Be(22);
result!.Count.Should().Be(21);
result.Data.Should().HaveCount(10)
.And.AllSatisfy(x => x.Should().Match<Models.CompanyServiceAccountData>(y =>
.And.AllSatisfy(x => x.Should().Match<CompanyServiceAccountData>(y =>
y.TechnicalUserTypeId == TechnicalUserTypeId.OWN &&
y.UserStatusId == UserStatusId.ACTIVE))
.And.BeInAscendingOrder(x => x.Name)
Expand Down

0 comments on commit b7f08ed

Please sign in to comment.