public async Task CreateConnection_BillingSyncType_InvalidLicense_Throws(OrganizationConnectionRequestModel model, BillingSyncConfig config, Guid cloudOrgId, OrganizationLicense organizationLicense, SutProvider <OrganizationConnectionsController> sutProvider) { model.Type = OrganizationConnectionType.CloudBillingSync; organizationLicense.Id = cloudOrgId; model.Config = JsonDocumentFromObject(config); var typedModel = new OrganizationConnectionRequestModel <BillingSyncConfig>(model); typedModel.ParsedConfig.CloudOrganizationId = cloudOrgId; sutProvider.GetDependency <ICurrentContext>() .OrganizationOwner(model.OrganizationId) .Returns(true); sutProvider.GetDependency <ILicensingService>() .ReadOrganizationLicenseAsync(model.OrganizationId) .Returns(organizationLicense); sutProvider.GetDependency <ILicensingService>() .VerifyLicense(organizationLicense) .Returns(false); await Assert.ThrowsAsync <BadRequestException>(async() => await sutProvider.Sut.CreateConnection(model)); }
public async Task CreateConnection_Success(OrganizationConnectionRequestModel model, BillingSyncConfig config, Guid cloudOrgId, OrganizationLicense organizationLicense, SutProvider <OrganizationConnectionsController> sutProvider) { organizationLicense.Id = cloudOrgId; model.Config = JsonDocumentFromObject(config); var typedModel = new OrganizationConnectionRequestModel <BillingSyncConfig>(model); typedModel.ParsedConfig.CloudOrganizationId = cloudOrgId; sutProvider.GetDependency <IGlobalSettings>().SelfHosted.Returns(true); sutProvider.GetDependency <ICreateOrganizationConnectionCommand>().CreateAsync <BillingSyncConfig>(default)
public async Task CreateConnection_OnlyOneConnectionOfEachType(OrganizationConnectionType type, OrganizationConnectionRequestModel model, BillingSyncConfig config, Guid existingEntityId, SutProvider <OrganizationConnectionsController> sutProvider) { model.Type = type; model.Config = JsonDocumentFromObject(config); var typedModel = new OrganizationConnectionRequestModel <BillingSyncConfig>(model); var existing = typedModel.ToData(existingEntityId).ToEntity(); sutProvider.GetDependency <ICurrentContext>().OrganizationOwner(model.OrganizationId).Returns(true); sutProvider.GetDependency <IOrganizationConnectionRepository>().GetByOrganizationIdTypeAsync(model.OrganizationId, type).Returns(new[] { existing }); var exception = await Assert.ThrowsAsync <BadRequestException>(() => sutProvider.Sut.CreateConnection(model)); Assert.Contains($"The requested organization already has a connection of type {model.Type}. Only one of each connection type may exist per organization.", exception.Message); }
public async Task CreateConnection_Success(OrganizationConnectionRequestModel model, BillingSyncConfig config, Guid cloudOrgId, SutProvider <OrganizationConnectionsController> sutProvider) { model.Config = JsonDocumentFromObject(config); var typedModel = new OrganizationConnectionRequestModel <BillingSyncConfig>(model); typedModel.ParsedConfig.CloudOrganizationId = cloudOrgId; sutProvider.GetDependency <ICreateOrganizationConnectionCommand>().CreateAsync <BillingSyncConfig>(default)