public void ResourceModel_DesignValidationServicePublishingMemo_UpdatesErrors()
{
//Setup();
var instanceID = Guid.NewGuid();
var pubMemo = new DesignValidationMemo { InstanceID = instanceID };
pubMemo.Errors.Add(new ErrorInfo { ErrorType = ErrorType.Critical, Message = "Critical error.", InstanceID = instanceID });
pubMemo.Errors.Add(new ErrorInfo { ErrorType = ErrorType.Warning, Message = "Warning error.", InstanceID = instanceID });
var eventPublisher = new EventPublisher();
var connection = new Mock<IEnvironmentConnection>();
connection.Setup(e => e.ServerEvents).Returns(eventPublisher);
var environmentModel = new Mock<IEnvironmentModel>();
environmentModel.Setup(e => e.Connection).Returns(connection.Object);
var model = new ResourceModel(environmentModel.Object)
{
ID = instanceID
};
model.OnDesignValidationReceived += (sender, memo) =>
{
Assert.AreEqual(memo.Errors.Count, model.Errors.Count, "OnDesignValidationReceived did not update the number of errors correctly.");
foreach (var error in memo.Errors)
{
var modelError = model.Errors.FirstOrDefault(me => me.ErrorType == error.ErrorType && me.Message == error.Message);
Assert.AreSame(error, modelError, "OnDesignValidationReceived did not set the error.");
}
};
eventPublisher.Publish(pubMemo);
}