예제 #1
0
        public void GivenACreateAction_ThenCallIsCalledOnce()
        {
            var mockClient = new Mock <IClient>();

            mockClient.Setup(c => c.Call(It.IsAny <CallOptions>()));

            var mockPhoneNumbers = new Mock <IPhoneNumbers>();

            mockPhoneNumbers.Setup(p => p.Twilio).Returns("twilio-phone-number");

            var mockCustomRequest = new Mock <ICustomRequest>();

            mockCustomRequest.Setup(r => r.Url).Returns("http://example.com");

            var controller = new RecordingsController(
                mockClient.Object, mockPhoneNumbers.Object, mockCustomRequest.Object)
            {
                Url = Url
            };
            var result = controller.Create("phone-number");

            result.ExecuteResult(MockControllerContext.Object);

            mockClient.Verify(c => c.Call(It.IsAny <CallOptions>()), Times.Once);
        }
예제 #2
0
        public void GivenAnIndexAction_WhenClientHasRecordings_ThenShowsTheRecordings()
        {
            var mockClient = new Mock <IClient>();

            mockClient.Setup(c => c.Recordings()).Returns(new List <Recording>
            {
                new Recording {
                    Uri = new Uri("/recording", UriKind.Relative), DateCreated = new DateTime(2015, 01, 01)
                },
                new Recording {
                    Uri = new Uri("/recording", UriKind.Relative), DateCreated = new DateTime(2015, 01, 01)
                }
            });

            var stubPhoneNumbers = Mock.Of <IPhoneNumbers>();

            var controller = new RecordingsController(mockClient.Object, stubPhoneNumbers);
            var result     = controller.Index();

            result.ExecuteResult(MockControllerContext.Object);

            var recordings = Json.Decode <IList <IDictionary <string, string> > >(Result.ToString());

            Assert.That(recordings.Count, Is.EqualTo(2));
        }
예제 #3
0
        public void GivenAHangupAction_ThenTheResponseContainsHangup()
        {
            var controller = new RecordingsController();
            var result     = controller.Hangup();

            result.ExecuteResult(MockControllerContext.Object);
            var document = BuildDocument();

            Assert.That(document.SelectSingleNode("Response/Hangup"), Is.Not.Null);
        }
예제 #4
0
        public void GivenARecordAction_ThenTheResponseContainsRecord()
        {
            var controller = new RecordingsController {
                Url = Url
            };
            var result = controller.Record();

            result.ExecuteResult(MockControllerContext.Object);
            var document = BuildDocument();

            Assert.That(document.SelectSingleNode("Response/Record").Attributes["finishOnKey"].Value,
                        Is.EqualTo("*"));
        }
예제 #5
0
        public void GivenAnIndexAction_WhenClientHasRecordings_ThenShowsTheRecordings()
        {
            var mockClient = new Mock <IClient>();

            var recordingsFromApi = new List <RecordingResource>
            {
                RecordingResource.FromJson("{\"date_created\": \"Mon, 22 Aug 2011 20:58:45 +0000\", \"uri\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings/REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json\"}")
            };

            mockClient.Setup(c => c.Recordings()).ReturnsAsync(recordingsFromApi);

            var stubPhoneNumbers = Mock.Of <IPhoneNumbers>();
            var controller       = new RecordingsController(mockClient.Object, stubPhoneNumbers);
            var result           = controller.WithCallTo(c => c.Index()).ShouldReturnJson();
            var recordings       = (result.Data as IEnumerable <object>).ToList();

            Assert.That(recordings.Count(), Is.EqualTo(1));
        }
예제 #6
0
        public void GivenACreateAction_ThenCallIsCalledOnce()
        {
            var mockClient       = new Mock <IClient>();
            var mockPhoneNumbers = new Mock <IPhoneNumbers>();

            mockPhoneNumbers.Setup(p => p.Twilio).Returns("twilio-phone-number");

            var mockCustomRequest = new Mock <ICustomRequest>();

            mockCustomRequest.Setup(r => r.Url).Returns("http://example.com");

            var controller = new RecordingsController(
                mockClient.Object, mockPhoneNumbers.Object, mockCustomRequest.Object)
            {
                Url = Url
            };

            controller.WithCallTo(c => c.Create("phone-number")).ShouldReturnEmptyResult();

            mockClient.Verify(
                c => c.Call("phone-number", "twilio-phone-number", "http://example.com/Recordings/Record"));
        }
예제 #7
0
 public void SetUp()
 {
     _controller = new RecordingsController(_repos);
     _vr         = _controller.Index() as ViewResult;
 }
예제 #8
0
        public void ParentSetUp()
        {
            //不要データを残さない
            var service = RecordingService.GetInstance(_repos);

            service.DeleteAll();

            //コントローラーのテストで使用
            _controller = new RecordingsController(_repos);

            //参照テストで使用
            var newrec = new Recording()
            {
                Title       = "Are You Experienced",
                ReleaseDate = new DateTime(1967, 5, 12),
                Artist      = new Artist()
                {
                    Name = "Jimi Hendrix"
                },
                Label = new Label()
                {
                    Name = "Track Record"
                },
                Tracks = new List <Track>()
                {
                    new Track()
                    {
                        Title    = "Foxy Lady",
                        Duration = 199
                    },
                    new Track()
                    {
                        Title    = "Manic Depression",
                        Duration = 210
                    },
                    new Track()
                    {
                        Title    = "Red House",
                        Duration = 224
                    }
                }
            };

            _repos.Add(newrec);
            _repos.Save();
            _repos.Reload();
            _initial = newrec;

            //更新のテストで使用
            _vm = new CreateViewModel()
            {
                Title       = "Sgt. Peppers Lonely Hearts Club Band",
                ReleaseDate = new DateTime(1967, 5, 26),
                TrackTitles = new List <string>()
                {
                    "Sgt. Pepper's Lonely Hearts Club Band",
                    "With a Little Help from My Friends",
                    "Lucy in the Sky with Diamonds"
                },
                Durations = new List <int?>()
                {
                    122,
                    163,
                    208
                },
                SelectedArtistId = 1,
                SelectedLabelId  = 2
            };
        }