public void CreateAssetIfNotExistsShouldReturnEntityIdWhenAssetExists() { // mock RetrieveMultiple call to retrieve an entity with a known id Guid assetId = Guid.NewGuid(); EntityCollection queryExpressionResult = new EntityCollection(); queryExpressionResult.Entities.Add(new Entity() { Id = assetId }); this.cdsServiceClientMock.Setup(service => service.RetrieveMultiple(It.IsAny <QueryBase>())).Returns(queryExpressionResult); // create DynamicsEntityService to test DynamicsEntityService dynamicsEntityService = new DynamicsEntityService(this.cdsServiceClientMock.Object); // call CreateAssetIfNotExists IconicsFault iconicsFault = new IconicsFault() { AssetName = "TestAsset", }; Guid returnedId = dynamicsEntityService.CreateAssetIfNotExists(iconicsFault, this.loggerMock); this.cdsServiceClientMock.Verify(x => x.RetrieveMultiple(It.IsAny <QueryBase>()), Times.Once); Assert.Equal($"Retrieved Asset {returnedId}.", this.loggerMock.Logs[0]); // verify that returned id is equal to the generated entity id Assert.Equal(assetId, returnedId); }
public void GetIoTAlertShouldreturnEmptywhenAlertdoesntexists() { // mock RetrieveMultiple call to retrieve an empty entity collection EntityCollection queryExpressionResult = new EntityCollection(); this.cdsServiceClientMock.Setup(service => service.RetrieveMultiple(It.IsAny <QueryBase>())).Returns(queryExpressionResult); Guid alertId = Guid.Empty; // create DynamicsEntityService to test DynamicsEntityService dynamicsEntityService = new DynamicsEntityService(this.cdsServiceClientMock.Object); // call GetIoTAlert IconicsFault iconicsFault = new IconicsFault() { FaultName = "TestFault", AssetName = "TestAsset", AssetPath = "TestAssetPath", FaultState = "Active", FaultActiveTime = "2020-08-13T20:01:04.6565528Z", }; Guid returnedId = dynamicsEntityService.GetIoTAlert(iconicsFault, this.loggerMock); // verify that Empty is returned and correct message is logged Assert.Equal(alertId, returnedId); string expectedLogText = "An Existing IoT Alert with Alert Token"; Assert.Contains(expectedLogText, this.loggerMock.Logs[0], StringComparison.OrdinalIgnoreCase); }
public void GetIoTAlertShouldReturnAlertId() { // mock RetrieveMultiple call to retrieve an entity with a known id Guid alertId = Guid.NewGuid(); EntityCollection queryExpressionResult = new EntityCollection(); queryExpressionResult.Entities.Add(new Entity() { Id = alertId }); this.cdsServiceClientMock.Setup(service => service.RetrieveMultiple(It.IsAny <QueryBase>())).Returns(queryExpressionResult); // create DynamicsEntityService to test DynamicsEntityService dynamicsEntityService = new DynamicsEntityService(this.cdsServiceClientMock.Object); // call GetIoTAlert IconicsFault iconicsFault = new IconicsFault() { FaultName = "TestFault", AssetName = "TestAsset", AssetPath = "TestAssetPath", FaultState = "Active", FaultActiveTime = "2020-08-13T20:01:04.6565528Z", }; Guid returnedId = dynamicsEntityService.GetIoTAlert(iconicsFault, this.loggerMock); // verify that returned id is equal to the entity id Assert.Equal(alertId, returnedId); }
public void CreateAlertShouldReturnNewId() { // mock Create call to retrieve a known alert id Guid alertId = Guid.NewGuid(); this.cdsServiceClientMock.Setup(service => service.Create(It.IsAny <Entity>())).Returns(alertId); // create DynamicsEntityService to test DynamicsEntityService dynamicsEntityService = new DynamicsEntityService(this.cdsServiceClientMock.Object); // call CreateAlert Guid assetId = Guid.NewGuid(); IconicsFault iconicsFault = new IconicsFault() { FaultName = "TestFault", AssetName = "TestAsset", AssetPath = "TestAssetPath", FaultState = "Active", FaultActiveTime = "2020-08-13T20:01:04.6565528Z", }; Guid returnedId = dynamicsEntityService.CreateAlert(iconicsFault, assetId, this.loggerMock); this.cdsServiceClientMock.Verify(x => x.Create(It.IsAny <Entity>()), Times.Once); Assert.Equal( $"Created Alert {returnedId} from Fault (FaultName: {iconicsFault.FaultName}, FaultActiveTime: {iconicsFault.FaultActiveTime}, AssetName: {iconicsFault.AssetName}, AssetPath: {iconicsFault.AssetPath}).", this.loggerMock.Logs[0]); Assert.Equal($"Associated Alert {returnedId} with Asset {assetId}.", this.loggerMock.Logs[1]); // verify that returned id is equal to the generated entity id Assert.Equal(alertId, returnedId); }
public void UpdateIoTAlertShouldUpdateAlertInfo() { // mock RetrieveMultiple call to retrieve an entity with a known id Guid alertId = Guid.NewGuid(); EntityCollection queryExpressionResult = new EntityCollection(); queryExpressionResult.Entities.Add(new Entity() { Id = alertId }); this.cdsServiceClientMock.Setup(service => service.RetrieveMultiple(It.IsAny <QueryBase>())).Returns(queryExpressionResult); Guid updatedAlertid = Guid.Empty; this.cdsServiceClientMock.Setup(service => service.Update(It.IsAny <Entity>())).Callback <Entity>(entity => updatedAlertid = entity.Id); // create DynamicsEntityService to test DynamicsEntityService dynamicsEntityService = new DynamicsEntityService(this.cdsServiceClientMock.Object); IconicsFault iconicsFault = new IconicsFault() { FaultName = "TestFault", AssetName = "TestAsset", AssetPath = "TestAssetPath", FaultState = "InActive", FaultActiveTime = "2020-08-13T20:01:04.6565528Z", }; // call UpdateIoTAlert dynamicsEntityService.UpdateIoTAlert(iconicsFault, this.loggerMock, 0, 0); this.cdsServiceClientMock.Verify(service => service.Update(It.IsAny <Entity>()), Times.Once); this.cdsServiceClientMock.Verify(service => service.RetrieveMultiple(It.IsAny <QueryBase>()), Times.Once); // verify that the correct id is passed into Update call Assert.Equal(alertId, updatedAlertid); string expectedupdatelog = "Updated State of IoT Alert to InActive and Alert Data with latest Fault Data"; // Verify that the correct message is logged from UpdateIoTAlert Assert.Contains(expectedupdatelog, this.loggerMock.Logs[0], StringComparison.OrdinalIgnoreCase); }
public void CreateAssetIfNotExistsShouldReturnNewIdWhenAssetDoesNotExist() { // mock RetrieveMultiple call to retrieve an empty entity collection EntityCollection queryExpressionResult = new EntityCollection(); this.cdsServiceClientMock.Setup(service => service.RetrieveMultiple(It.IsAny <QueryBase>())).Returns(queryExpressionResult); // mock Create call to retrieve a known asset id Guid assetId = Guid.NewGuid(); this.cdsServiceClientMock.Setup(service => service.Create(It.IsAny <Entity>())).Returns(assetId); // create DynamicsEntityService to test DynamicsEntityService dynamicsEntityService = new DynamicsEntityService(this.cdsServiceClientMock.Object); // call CreateAssetIfNotExists IconicsFault iconicsFault = new IconicsFault() { AssetName = "TestAsset", FaultName = "TestFaultName", FaultActiveTime = "2020-08-13T20:01:04.6565528Z", AssetPath = "TestAssetPath", }; Guid returnedId = dynamicsEntityService.CreateAssetIfNotExists(iconicsFault, this.loggerMock); this.cdsServiceClientMock.Verify(x => x.RetrieveMultiple(It.IsAny <QueryBase>()), Times.Once); this.cdsServiceClientMock.Verify(x => x.Create(It.IsAny <Entity>()), Times.Once); Assert.Equal( $"Created Asset {returnedId} from Fault (FaultName: {iconicsFault.FaultName}, FaultActiveTime: {iconicsFault.FaultActiveTime}, AssetName: {iconicsFault.AssetName}, AssetPath: {iconicsFault.AssetPath}).", this.loggerMock.Logs[0]); // verify that returned id is equal to the generated entity id Assert.Equal(assetId, returnedId); }