Skip to content

Commit

Permalink
refactor: several small refactorings
Browse files Browse the repository at this point in the history
  • Loading branch information
tnotheis committed Jan 23, 2024
1 parent a3c0d86 commit d4655aa
Show file tree
Hide file tree
Showing 36 changed files with 279 additions and 215 deletions.
2 changes: 1 addition & 1 deletion BuildingBlocks/src/UnitTestTools/Data/TestDataGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Backbone.UnitTestTools.Data;

public static class TestDataGenerator
public class TestDataGenerator
{
public static string GenerateString(int resultLength, char[]? chars = null)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
namespace Backbone.Modules.Devices.Application.Identities.Commands.DeleteIdentity;
public class DeleteIdentityCommand : IRequest
{

public DeleteIdentityCommand(IdentityAddress identityAddress)
{
IdentityAddress = identityAddress;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using Backbone.BuildingBlocks.Application.Identities;
using Backbone.DevelopmentKit.Identity.ValueObjects;
using Backbone.Modules.Devices.Application.Identities.Commands.DeleteIdentity;
using Backbone.Modules.Devices.Application.PushNotifications.Commands.DeleteRegistrationsOfIdentity;
using Backbone.Modules.Devices.Application.PushNotifications.Commands.DeletePnsRegistrationsOfIdentity;
using MediatR;

namespace Backbone.Modules.Devices.Application.Identities;
Expand All @@ -16,7 +16,7 @@ public IdentityDeleter(IMediator mediator)

public async Task Delete(IdentityAddress identityAddress)
{
await _mediator.Send(new DeleteRegistrationsOfIdentityCommand(identityAddress));
await _mediator.Send(new DeletePnsRegistrationsOfIdentityCommand(identityAddress));
await _mediator.Send(new DeleteIdentityCommand(identityAddress));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ public interface IPnsRegistrationsRepository
Task<IEnumerable<PnsRegistration>> FindWithAddress(IdentityAddress address, CancellationToken cancellationToken, bool track = false);
Task<PnsRegistration> FindByDeviceId(DeviceId deviceId, CancellationToken cancellationToken, bool track = false);
Task Delete(List<DeviceId> deviceIds, CancellationToken cancellationToken);
Task DeletePnsRegistrations(Expression<Func<PnsRegistration, bool>> filter, CancellationToken cancellationToken);
Task Delete(Expression<Func<PnsRegistration, bool>> filter, CancellationToken cancellationToken);
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ public class IdentityStatusChangedIntegrationEvent : IntegrationEvent
public IdentityStatusChangedIntegrationEvent(IdentityAddress identityAddress, IdentityStatus newStatus) : base($"{identityAddress.StringValue}/StatusChanged")
{
IdentityAddress = identityAddress;
Status = newStatus;
NewStatus = newStatus;
}

public IdentityAddress IdentityAddress { get; set; }
public IdentityStatus Status { get; set; }
public IdentityStatus NewStatus { get; set; }
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
using Backbone.DevelopmentKit.Identity.ValueObjects;
using MediatR;

namespace Backbone.Modules.Devices.Application.PushNotifications.Commands.DeleteRegistrationsOfIdentity;
public class DeleteRegistrationsOfIdentityCommand : IRequest
namespace Backbone.Modules.Devices.Application.PushNotifications.Commands.DeletePnsRegistrationsOfIdentity;
public class DeletePnsRegistrationsOfIdentityCommand : IRequest
{
public DeleteRegistrationsOfIdentityCommand(IdentityAddress identityAddress)
public DeletePnsRegistrationsOfIdentityCommand(IdentityAddress identityAddress)
{
IdentityAddress = identityAddress;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
using Backbone.Modules.Devices.Domain.Aggregates.PushNotifications;
using MediatR;

namespace Backbone.Modules.Devices.Application.PushNotifications.Commands.DeleteRegistrationsOfIdentity;
public class Handler : IRequestHandler<DeleteRegistrationsOfIdentityCommand>
namespace Backbone.Modules.Devices.Application.PushNotifications.Commands.DeletePnsRegistrationsOfIdentity;
public class Handler : IRequestHandler<DeletePnsRegistrationsOfIdentityCommand>
{
private readonly IPnsRegistrationsRepository _pnsRegistrationRepository;

Expand All @@ -12,8 +12,8 @@ public Handler(IPnsRegistrationsRepository pnsRegistrationRepository)
_pnsRegistrationRepository = pnsRegistrationRepository;
}

public async Task Handle(DeleteRegistrationsOfIdentityCommand request, CancellationToken cancellationToken)
public async Task Handle(DeletePnsRegistrationsOfIdentityCommand request, CancellationToken cancellationToken)
{
await _pnsRegistrationRepository.DeletePnsRegistrations(PnsRegistration.HasAddress(request.IdentityAddress), cancellationToken);
await _pnsRegistrationRepository.Delete(PnsRegistration.HasAddress(request.IdentityAddress), cancellationToken);
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
using Backbone.DevelopmentKit.Identity.ValueObjects;
using FluentValidation;

namespace Backbone.Modules.Devices.Application.PushNotifications.Commands.DeleteRegistrationsOfIdentity;
public class Validator : AbstractValidator<DeleteRegistrationsOfIdentityCommand>
namespace Backbone.Modules.Devices.Application.PushNotifications.Commands.DeletePnsRegistrationsOfIdentity;
public class Validator : AbstractValidator<DeletePnsRegistrationsOfIdentityCommand>
{
public Validator() => RuleFor(x => x.IdentityAddress).Must(x => IdentityAddress.IsValid(x));
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ public Identity(string? clientId, IdentityAddress address, byte[] publicKey, Tie
_deletionProcesses = new List<IdentityDeletionProcess>();
}

public IdentityStatus Status { get; internal set; }
public IdentityStatus Status { get; private set; }

public string? ClientId { get; private set; }

public IdentityAddress Address { get; private set; }
public IdentityAddress Address { get; }
public byte[] PublicKey { get; private set; }
public DateTime CreatedAt { get; private set; }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public async Task Update(PnsRegistration registration, CancellationToken cancell
await _dbContext.SaveChangesAsync(cancellationToken);
}

public async Task DeletePnsRegistrations(Expression<Func<PnsRegistration, bool>> filter, CancellationToken cancellationToken)
public async Task Delete(Expression<Func<PnsRegistration, bool>> filter, CancellationToken cancellationToken)
{
await _registrations.Where(filter).ExecuteDeleteAsync(cancellationToken);
}
Expand Down

This file was deleted.

25 changes: 10 additions & 15 deletions Modules/Devices/src/Devices.Jobs.IdentityDeletion/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,20 +53,18 @@ private static IHostBuilder CreateHostBuilder(string[] args)
var configuration = hostContext.Configuration;
services.AddHostedService<Worker>();

services.AddModule<DevicesModule>(configuration)
.AddModule<RelationshipsModule>(configuration)
.AddModule<ChallengesModule>(configuration)
.AddModule<FilesModule>(configuration)
.AddModule<MessagesModule>(configuration)
.AddModule<QuotasModule>(configuration)
.AddModule<SynchronizationModule>(configuration)
.AddModule<TokensModule>(configuration);
services
.AddModule<DevicesModule>(configuration)
.AddModule<RelationshipsModule>(configuration)
.AddModule<ChallengesModule>(configuration)
.AddModule<FilesModule>(configuration)
.AddModule<MessagesModule>(configuration)
.AddModule<QuotasModule>(configuration)
.AddModule<SynchronizationModule>(configuration)
.AddModule<TokensModule>(configuration);

services.AddTransient<IQuotaChecker, AlwaysSuccessQuotaChecker>();
services.AddFluentValidationAutoValidation(config =>
{
config.DisableDataAnnotationsValidation = true;
});
services.AddFluentValidationAutoValidation(config => { config.DisableDataAnnotationsValidation = true; });

services.AddCustomIdentity(hostContext.HostingEnvironment);

Expand All @@ -84,12 +82,9 @@ private static IHostBuilder CreateHostBuilder(string[] args)
var devicesConfiguration = new DevicesConfiguration();
configuration.GetSection("Modules:Devices").Bind(devicesConfiguration);
services.AddPushNotifications(devicesConfiguration.Infrastructure.PushNotifications);

})
.UseServiceProviderFactory(new AutofacServiceProviderFactory());

}

}

public static class ServicesExtensions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,11 +75,6 @@
"Provider": "Postgres",
"ConnectionString": "User ID=synchronization;Password=Passw0rd;Server=localhost;Port=5432;Database=enmeshed;" // postgres
// "ConnectionString": "Server=localhost;Database=enmeshed;User Id=synchronization;Password=Passw0rd;TrustServerCertificate=True" // sqlserver
},
"BlobStorage": {
"CloudProvider": "Azure",
"ConnectionInfo": "",
"ContainerName": ""
}
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ public async Task Response_contains_expected_identities()
var result = await handler.Handle(command, CancellationToken.None);

// Assert
result.IdentityAddresses.Should().HaveCount(1);
result.IdentityAddresses.Single().Should().Be(anIdentity.Address);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,24 @@

namespace Backbone.Modules.Devices.Domain.Tests.Identities;

public class DeletionProcessTests : IDisposable
public class DeletionProcessTests
{
[Fact]
public void DeletionStarted_sets_status_and_creates_valid_DeletionProcess()
{
// Arrange
var currentDateTime = DateTime.Parse("2000-01-01 06:00:00");
SystemTime.Set(currentDateTime);
var activeIdentity = CreateIdentity();
activeIdentity.StartDeletionProcessAsOwner(new Device(activeIdentity).Id);
var identity = CreateIdentity();
identity.StartDeletionProcessAsOwner(new Device(identity).Id);

// Act
activeIdentity.DeletionStarted();
identity.DeletionStarted();

// Assert
activeIdentity.Status.Should().Be(IdentityStatus.Deleting);
activeIdentity.DeletionProcesses.Should().HaveCount(1);
activeIdentity.DeletionProcesses.First().DeletionStartedAt.Should().Be(currentDateTime);
identity.Status.Should().Be(IdentityStatus.Deleting);
identity.DeletionProcesses.Should().HaveCount(1);
identity.DeletionProcesses.First().DeletionStartedAt.Should().Be(currentDateTime);

}

Expand All @@ -33,9 +33,4 @@ private static Identity CreateIdentity()
var address = IdentityAddress.Create(Array.Empty<byte>(), "id1");
return new Identity("", address, Array.Empty<byte>(), TierId.Generate(), 1);
}

public void Dispose()
{
Hasher.Reset();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,21 @@ public void Start_deletion_process()
{
// Arrange
SystemTime.Set(DateTime.Parse("2000-01-01"));
var activeIdentity = CreateIdentity();
var activeDevice = DeviceId.Parse("DVC");
var identity = CreateIdentity();
var device = DeviceId.Parse("DVC");

Hasher.SetHasher(new DummyHasher(new byte[] { 1, 2, 3 }));

// Act
var deletionProcess = activeIdentity.StartDeletionProcessAsOwner(activeDevice);
var deletionProcess = identity.StartDeletionProcessAsOwner(device);

// Assert
activeIdentity.DeletionGracePeriodEndsAt.Should().Be(DateTime.Parse("2000-01-31"));
identity.DeletionGracePeriodEndsAt.Should().Be(DateTime.Parse("2000-01-31"));

AssertDeletionProcessWasStarted(activeIdentity);
AssertDeletionProcessWasStarted(identity);
deletionProcess.Status.Should().Be(DeletionProcessStatus.Approved);
deletionProcess.ApprovedAt.Should().Be(SystemTime.UtcNow);
deletionProcess.ApprovedByDevice.Should().Be(activeDevice);
deletionProcess.ApprovedByDevice.Should().Be(device);
deletionProcess.GracePeriodEndsAt.Should().Be(DateTime.Parse("2000-01-31"));

AssertAuditLogEntryWasCreated(deletionProcess);
Expand All @@ -44,22 +44,22 @@ public void Start_deletion_process()
public void Only_one_active_deletion_process_is_allowed_when_started()
{
// Arrange
var activeIdentity = CreateIdentity();
var activeDevice = DeviceId.Parse("DVC");
var identity = CreateIdentity();
var device = DeviceId.Parse("DVC");

activeIdentity.StartDeletionProcessAsOwner(activeDevice);
identity.StartDeletionProcessAsOwner(device);

// Act
var acting = () => activeIdentity.StartDeletionProcessAsOwner(activeDevice);
var acting = () => identity.StartDeletionProcessAsOwner(device);

// Assert
acting.Should().Throw<DomainException>().Which.Code.Should().Be("error.platform.validation.device.onlyOneActiveDeletionProcessAllowed");
}

private static void AssertDeletionProcessWasStarted(Identity activeIdentity)
private static void AssertDeletionProcessWasStarted(Identity identity)
{
activeIdentity.DeletionProcesses.Should().HaveCount(1);
var deletionProcess = activeIdentity.DeletionProcesses[0];
identity.DeletionProcesses.Should().HaveCount(1);
var deletionProcess = identity.DeletionProcesses[0];
deletionProcess.Should().NotBeNull();

deletionProcess.Id.Should().NotBeNull();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@ public void Start_deletion_process()
{
// Arrange
SystemTime.Set(DateTime.Parse("2000-01-01"));
var activeIdentity = CreateIdentity();
var identity = CreateIdentity();

Hasher.SetHasher(new DummyHasher(new byte[] { 1, 2, 3 }));

// Act
var deletionProcess = activeIdentity.StartDeletionProcessAsSupport();
var deletionProcess = identity.StartDeletionProcessAsSupport();

// Assert
AssertDeletionProcessWasStarted(activeIdentity);
AssertDeletionProcessWasStarted(identity);
deletionProcess.Status.Should().Be(DeletionProcessStatus.WaitingForApproval);

AssertAuditLogEntryWasCreated(deletionProcess);
Expand All @@ -38,21 +38,21 @@ public void Start_deletion_process()
public void Only_one_active_deletion_process_is_allowed_when_started()
{
// Arrange
var activeIdentity = CreateIdentity();
var identity = CreateIdentity();

activeIdentity.StartDeletionProcessAsSupport();
identity.StartDeletionProcessAsSupport();

// Act
var acting = activeIdentity.StartDeletionProcessAsSupport;
var acting = identity.StartDeletionProcessAsSupport;

// Assert
acting.Should().Throw<DomainException>().Which.Code.Should().Be("error.platform.validation.device.onlyOneActiveDeletionProcessAllowed");
}

private static void AssertDeletionProcessWasStarted(Identity activeIdentity)
private static void AssertDeletionProcessWasStarted(Identity identity)
{
activeIdentity.DeletionProcesses.Should().HaveCount(1);
var deletionProcess = activeIdentity.DeletionProcesses[0];
identity.DeletionProcesses.Should().HaveCount(1);
var deletionProcess = identity.DeletionProcesses[0];
deletionProcess.Should().NotBeNull();

deletionProcess.Id.Should().NotBeNull();
Expand Down
Loading

0 comments on commit d4655aa

Please sign in to comment.