public void Save_ScreenRouteSimiliarRoutes_ValuesIncrementMatchesCorrectly()
{
EventMapper eventMapper = new EventMapper(this.client, this.database);
Guid applicationId = Guid.NewGuid();
Guid deviceId = Guid.NewGuid();
ScreenRouteSummary expected = new ScreenRouteSummary()
{
ApplicationId = applicationId,
Count = 2,
Date = date,
PlatformId = platform,
Version = version,
ScreenRoutes = new List<ScreenRoute>()
{
new ScreenRoute("screenNameBefore", "screenNameAfter")
{
Count = 1
},
new ScreenRoute("screenNameOther", "screenNameAfter")
{
Count = 1
}
}
};
Event eventItem = new Event()
{
ApplicationId = applicationId,
Date = date,
Version = version,
PlatformId = platform,
DateCreatedOnDevice = dateCreatedOnDevice,
DeviceId = deviceId,
DateCreated = date,
EventTypeId = Model.Enum.EventType.ScreenOpen,
ScreenName = "screenNameAfter"
};
ScreenRouteSummary summaryBefore = new ScreenRouteSummary(eventItem, "screenNameBefore", eventItem.ScreenName);
ScreenRouteSummary summaryOther = new ScreenRouteSummary(eventItem, "screenNameOther", eventItem.ScreenName);
eventMapper.Save(summaryBefore);
eventMapper.Save(summaryOther);
IMongoQuery query = Query.And
(
Query<ScreenRouteSummary>.EQ<DateTime>(mem => mem.Date, date),
Query<ScreenRouteSummary>.EQ<Guid>(mem => mem.ApplicationId, applicationId),
Query<ScreenRouteSummary>.EQ<string>(mem => mem.Version, version),
Query<ScreenRouteSummary>.EQ<PlatformType>(mem => mem.PlatformId, platform)
);
ScreenRouteSummary actual = this.GetCollection<ScreenRouteSummary>().FindOne(query);
actual.ShouldHave().AllPropertiesBut(x => x.Id).IncludingNestedObjects().EqualTo(expected);
}