public void Update_GivenInvalidNewEntityShouldThrowException() { var ctx = new Mock <RawMetricsContext>(false); var mockCollection = new Mock <IMongoCollection <RawMetric> >(); int deviceId = 1; ctx.Setup(c => c.RawMetrics).Returns(mockCollection.Object); var dao = new RawMetricsDAO(ctx.Object); var initialValue = dao.Create(new RawMetric() { DeviceId = deviceId, Date = DateTime.Now.Ticks, Value = "12" }); var ex = Assert.Throws <Exception>(() => dao.Update(new RawMetric() { Date = DateTime.Now.Ticks, Value = "16" })); Assert.AreEqual("RawMetric entity integrity not respected. Please verify all your required fields.", ex.Message); }
public void Update_GivenValidNewEntityShouldUpdateExisting() { var ctx = new Mock <RawMetricsContext>(false); var mockCollection = new Mock <IMongoCollection <RawMetric> >(); int deviceId = 1; ctx.Setup(c => c.RawMetrics).Returns(mockCollection.Object); var dao = new RawMetricsDAO(ctx.Object); var initialValue = dao.Create(new RawMetric() { DeviceId = deviceId, Date = DateTime.Now.Ticks, Value = "12" }); var updatedValue = dao.Update(new RawMetric() { DeviceId = deviceId, Date = DateTime.Now.Ticks, Value = "16" }); mockCollection.Verify(c => c.ReplaceOne(It.IsAny <FilterDefinition <RawMetric> >(), It.IsAny <RawMetric>(), It.IsAny <UpdateOptions>(), It.IsAny <CancellationToken>()), Times.Once()); Assert.AreNotEqual(initialValue.Value, updatedValue.Value); }