mirror of
https://github.com/qmlnet/qmlnet.git
synced 2026-05-16 14:15:57 -06:00
100 lines
2.8 KiB
C#
100 lines
2.8 KiB
C#
using Moq;
|
|
using PhotoFrame.Logic.BL;
|
|
using PhotoFrame.Logic.Config;
|
|
using PhotoFrame.Logic.UI.ViewModels;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using Xunit;
|
|
|
|
namespace PhotoFrame.Logic.Tests.UI.ViewModels
|
|
{
|
|
public class ViewModelBaseTest : ViewModelTestBase
|
|
{
|
|
public class ViewModelBaseTestClass : ViewModelBase
|
|
{
|
|
public IFrameController ExposedFrameController
|
|
{
|
|
get
|
|
{
|
|
return FrameController;
|
|
}
|
|
}
|
|
|
|
public IFrameConfig ExposedFrameConfig
|
|
{
|
|
get
|
|
{
|
|
return FrameConfig;
|
|
}
|
|
}
|
|
|
|
public ViewModelBaseTestClass(IFrameController frameController, IFrameConfig frameConfig)
|
|
: base(frameController, frameConfig)
|
|
{
|
|
}
|
|
};
|
|
|
|
protected ViewModelBase CreateUUT()
|
|
{
|
|
ViewModelBase result = new ViewModelBaseTestClass(_FrameControllerMock, _FrameConfigMock);
|
|
|
|
return result;
|
|
}
|
|
|
|
[Fact]
|
|
public void ImageUriGetsSetCorrectly()
|
|
{
|
|
ExpectImageUri("This is a URI");
|
|
var uut = CreateUUT();
|
|
Assert.Equal("This is a URI", uut.ImageUri);
|
|
}
|
|
|
|
[Fact]
|
|
public void ImageUriChangesGetPropagatedCorrectly()
|
|
{
|
|
var frameControllerMock = Mock.Get(_FrameControllerMock);
|
|
|
|
ExpectImageUri("ImageUri");
|
|
var uut = CreateUUT();
|
|
|
|
string catchedImageUri = "";
|
|
uut.PropertyChanged += (s, e) =>
|
|
{
|
|
if(e.PropertyName == "ImageUri")
|
|
{
|
|
catchedImageUri = ((ViewModelBase)s).ImageUri;
|
|
}
|
|
};
|
|
|
|
ExpectImageUri("ImageUri 2");
|
|
frameControllerMock.Raise(fc => fc.CurrentPhotoChanged += null, new CurrentPhotoChangedEventArgs());
|
|
|
|
Assert.Equal("ImageUri 2", catchedImageUri);
|
|
}
|
|
|
|
[Fact]
|
|
public void ImageUriChangesDontGetPropagatedAfterStopCorrectly()
|
|
{
|
|
var frameControllerMock = Mock.Get(_FrameControllerMock);
|
|
|
|
ExpectImageUri("ImageUri");
|
|
var uut = CreateUUT();
|
|
|
|
string catchedImageUri = null;
|
|
uut.PropertyChanged += (s, e) =>
|
|
{
|
|
if(e.PropertyName == "ImageUri")
|
|
{
|
|
catchedImageUri = ((ViewModelBase)s).ImageUri;
|
|
}
|
|
};
|
|
|
|
ExpectImageUri("ImageUri 2");
|
|
uut.Stop();
|
|
frameControllerMock.Raise(fc => fc.CurrentPhotoChanged += null, new CurrentPhotoChangedEventArgs());
|
|
|
|
Assert.Null(catchedImageUri);
|
|
}
|
|
}
|
|
}
|