public async Task Should_Get_Object_Signal_By_Name_And_Tag() { // Arrange var value = new TestObject { Value = Value }; await _context.Signals.AddAsync(new Signal { Id = 2, ResourceId = Guid.NewGuid(), Name = $"{Name}_object", Value = JsonConvert.SerializeObject(value), ValueType = value.GetSignalValueType(), IsBaseType = value.IsBaseType(), Tags = Tags, DateCreated = DateTime.Now, DateLastUpdated = DateTime.Now }).ConfigureAwait(false); await _context.SaveChangesAsync().ConfigureAwait(false); var request = new GetSignalByNameAndTagRequest { Name = $"{Name}_object", Tag = "Test" }; // Act var result = await _sut.Handle(request, CancellationToken.None).ConfigureAwait(false); // Assert result.ShouldNotBeNull(); result.Value.ShouldBeOfType <TestObject>(); }
public async Task Should_Get_Signal_By_Name_And_Tag() { // Arrange _context.Signals.Add(new Signal { Id = 1, ResourceId = _resourceId, Name = Name, Value = Value, ValueType = Value.GetSignalValueType(), IsBaseType = Value.IsBaseType(), Tags = Tags, DateCreated = DateTime.Now, DateLastUpdated = DateTime.Now }); _context.SaveChanges(); var request = new GetSignalByNameAndTagRequest { Name = Name, Tag = "Test" }; // Act var result = await _sut.Handle(request, CancellationToken.None).ConfigureAwait(false); // Assert result.ShouldNotBeNull(); result.ResourceId.ShouldBe(_resourceId); result.Name.ShouldBe(Name); result.Value.ShouldBe(Value); }
public async Task Should_Get_Encrypted_Object_Signal_With_No_PrivateKey() { // Arrange var value = new TestObject { Value = Value }; await _context.Signals.AddAsync(new Signal { Id = 3, ResourceId = Guid.NewGuid(), Name = $"{Name}_object_encrypted", Value = Convert.ToBase64String(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value))), ValueType = value.GetSignalValueType(), IsBaseType = value.IsBaseType(), Tags = $"{Tags},{Constants.EncryptedTag}", DateCreated = DateTime.Now, DateLastUpdated = DateTime.Now }).ConfigureAwait(false); await _context.SaveChangesAsync().ConfigureAwait(false); var request = new GetSignalByNameAndTagRequest { Name = $"{Name}_object_encrypted", Tag = "Test" }; // Act var result = await _sut.Handle(request, CancellationToken.None).ConfigureAwait(false); // Assert result.ShouldNotBeNull(); result.Value.ShouldBeOfType <string>(); }
public async Task Should_Only_Call_For_Decryption_If_Signal_Is_Marked_As_Encrypted(bool isEncrypted) { // Arrange var value = new TestObject { Value = Value }; await _context.Signals.AddAsync(new Signal { Id = 4, ResourceId = Guid.NewGuid(), Name = $"{Name}_object_encrypted", Value = isEncrypted ? Convert.ToBase64String(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value))) : JsonConvert.SerializeObject(value), ValueType = value.GetSignalValueType(), IsBaseType = value.IsBaseType(), Tags = $"{Tags}{(isEncrypted ? $",{Constants.EncryptedTag}" : string.Empty)}", DateCreated = DateTime.Now, DateLastUpdated = DateTime.Now }).ConfigureAwait(false); await _context.SaveChangesAsync().ConfigureAwait(false); _mediatorMock.Setup(x => x.Send(It.IsAny <DecryptionRequest>(), It.IsAny <CancellationToken>())).ReturnsAsync(JsonConvert.SerializeObject(value)); var request = new GetSignalByNameAndTagRequest { Name = $"{Name}_object_encrypted", Tag = "Test", PrivateKey = "Private Key" }; // Act await _sut.Handle(request, CancellationToken.None).ConfigureAwait(false); // Assert _mediatorMock.Verify(x => x.Send(It.IsAny <DecryptionRequest>(), It.IsAny <CancellationToken>()), () => isEncrypted ? Times.Once() : Times.Never()); }