У меня перегружен интерфейс Azure ICollector для моих тестовых классов.
Однако при создании сборщика и добавлении данных два инициализированных сборщика обрабатываются как один сборщик.
Нижемой код для класса коллекторов.
using System.Collections.Generic;
using Microsoft.Azure.WebJobs;
namespace ChangeFeedPublisherTests
{
class TestCollector<T> : ICollector<T>
{
public static List<T> Collector = new List<T>();
public void Add(T item)
{
Collector.Add(item);
}
public List<T> GetCollector()
{
return Collector;
}
}
}
Два коллектора инициализируются, как показано ниже, включая мой тестовый код
var actualCollector = new TestCollector<String>();
var documents = new List<Document>();
Document document = CreateDocument();
var changedSubdocuments = new List<String>();
changedSubdocuments.Add("AlternateId");
document.SetPropertyValue(ChangedSubdocumentsPropertyName, changedSubdocuments);
documents.Add(document);
MessageHandler.Run(documents, actualCollector, logger);
var expectedCollector = new TestCollector<String>();
var changeFeedMessage = DocumentToChangeFeedMessage(document);
var cloudEvent = CreateCloudEvents(JObject.FromObject(changeFeedMessage));
expectedCollector.Add(JsonConvert.SerializeObject(cloudEvent));
var expectedCollection = expectedCollector.GetCollector();
var actualCollection = actualCollector.GetCollector();
Assert.AreEqual(expectedCollection, actualCollection);
Assert.AreEqual(expectedCollection.Count, 1);
Функция запуска добавляет данные в коллектор.
Когда сборщики утверждены, оба добавленных данных включаются в оба сборщика, вместо каждого из которых добавляются по одному.