예제 #1
0
        public static IBuildRepository MockIBuildRepository()
        {
            var mock = new Mock <IBuildRepository>();

            mock.Setup(m => m.GetSubscribedBuilds(It.IsAny <string>()))
            .Returns(() => Task.FromResult(RepositoryResult <List <RecentBuilds> > .CreateSuccess(_list)));

            mock.Setup(m => m.SubscribeToBuild(It.IsAny <string>(), It.IsAny <string>()))
            .Returns <string, string>((user, build) =>
            {
                if (_list.Any(b => b.Name == build))
                {
                    return(Task.FromResult(RepositoryResult.CreateInvalid()));
                }

                var item = GetList().FirstOrDefault(b => b.Name == build);
                if (item == null)
                {
                    return(Task.FromResult(RepositoryResult.CreateInvalid()));
                }

                _list.Add(item);
                return(Task.FromResult(RepositoryResult.CreateSuccess()));
            });

            mock.Setup(m => m.UnsubscribeFromBuild(It.IsAny <string>(), It.IsAny <string>()))
            .Returns <string, string>((user, build) =>
            {
                var item = _list.FirstOrDefault(b => b.Name == build);

                if (item == null)
                {
                    return(Task.FromResult(RepositoryResult.CreateInvalid()));
                }

                _list.Remove(item);
                return(Task.FromResult(RepositoryResult.CreateSuccess()));
            });

            mock.Setup(m => m.GetAllBuilds())
            .Returns(Task.FromResult(RepositoryResult <List <RecentBuilds> > .CreateSuccess(GetList())));

            mock.Setup(m => m.GetSingleBuild(It.IsAny <string>()))
            .Returns <string>(b => Task.FromResult(RepositoryResult <RecentBuilds> .CreateSuccess(GetList().First(bb => bb.Name == b))));

            return(mock.Object);
        }