public void Save_DeviceSummary_ValuesIncrement()
{
DeviceMapper deviceMapper = new DeviceMapper(this.client, this.database);
Guid applicationId = Guid.NewGuid();
Guid deviceId = Guid.NewGuid();
DeviceSummary expected = new DeviceSummary()
{
ApplicationId = applicationId,
Count = 2,
Date = date,
PlatformId = platform,
Version = version,
Carriers = new List<Aggregate<string>>()
{
new Aggregate<string>()
{
Key = "o2",
Count = 2
}
},
Locales = new List<Aggregate<string>>()
{
new Aggregate<string>()
{
Key = "EN",
Count = 2
}
},
ManufacturerModels = new List<ManufacturerModelAggregate>()
{
new ManufacturerModelAggregate("HTC", "OneX")
{
Count = 2
}
},
OperatingSystems = new List<Aggregate<string>>()
{
new Aggregate<string>()
{
Key = "2.2.2.2",
Count = 2
}
},
Resolutions = new List<Resolution>()
{
new Resolution(900, 300)
{
Count = 2
}
}
};
DeviceSummary summary = new DeviceSummary()
{
ApplicationId = applicationId,
Date = date,
Version = version,
PlatformId = platform,
Locales = new List<Aggregate<string>>()
{
new Aggregate<string>("EN")
},
Carriers = new List<Aggregate<string>>()
{
new Aggregate<string>("o2")
},
ManufacturerModels = new List<ManufacturerModelAggregate>()
{
new ManufacturerModelAggregate("HTC", "OneX")
},
OperatingSystems = new List<Aggregate<string>>()
{
new Aggregate<string>("2.2.2.2")
},
Resolutions = new List<Resolution>()
{
new Resolution(900, 300)
}
};
deviceMapper.Save(summary);
deviceMapper.Save(summary);
IMongoQuery query = Query.And
(
Query<DeviceSummary>.EQ<DateTime>(mem => mem.Date, date),
Query<DeviceSummary>.EQ<Guid>(mem => mem.ApplicationId, applicationId),
Query<DeviceSummary>.EQ<string>(mem => mem.Version, version),
Query<DeviceSummary>.EQ<PlatformType>(mem => mem.PlatformId, platform)
);
DeviceSummary actual = this.GetCollection<DeviceSummary>().FindOne(query);
actual.ShouldHave().AllPropertiesBut(x => x.Id)
.IncludingNestedObjects().EqualTo(expected);
}