public void SetProperties_IndividualProperties_UpdateDataAndNotifyObservers() { // Setup const int numberOfChangedProperties = 2; var mockRepository = new MockRepository(); var observer = mockRepository.StrictMock <IObserver>(); observer.Expect(o => o.UpdateObserver()).Repeat.Times(numberOfChangedProperties); mockRepository.ReplayAll(); var backgroundData = new BackgroundData(new TestBackgroundDataConfiguration()); backgroundData.Attach(observer); var properties = new BackgroundDataProperties(backgroundData); var random = new Random(123); bool newVisibility = random.NextBoolean(); RoundedDouble newTransparency = random.NextRoundedDouble(); // Call properties.IsVisible = newVisibility; properties.Transparency = newTransparency; // Assert Assert.AreEqual(newTransparency, properties.Transparency, properties.Transparency.GetAccuracy()); Assert.AreEqual(newVisibility, properties.IsVisible); mockRepository.VerifyAll(); }