예제 #1
0
        private void describe_()
        {
            describe["#BulkInfo"] = () =>
            {
                List <ContainerInfoApiModel> info = null;

                Mock <IContainerInfoService> mockContainerService = null;
                var handles = new string[] { "handle1", "handle2" };
                BulkInfoController controller = null;
                Dictionary <string, BulkInfoResponse> result = null;

                before = () =>
                {
                    info = new List <ContainerInfoApiModel> {
                        new ContainerInfoApiModel(), new ContainerInfoApiModel()
                    };
                    mockContainerService = new Mock <IContainerInfoService>();
                    controller           = new BulkInfoController(mockContainerService.Object);
                };

                act = () => result = controller.BulkInfo(handles);


                context["when all requested containers exist"] = () =>
                {
                    before = () =>
                    {
                        mockContainerService.Setup(x => x.GetInfoByHandle(handles[0])).Returns(info[0]);
                        mockContainerService.Setup(x => x.GetInfoByHandle(handles[1])).Returns(info[1]);
                    };

                    it["returns info about the container"] = () =>
                    {
                        result.Count.should_be(2);
                        result[handles[0]].Info.should_be(info[0]);

                        result[handles[1]].Info.should_be(info[1]);
                    };
                };

                context["when the container does not exist"] = () =>
                {
                    before = () =>
                    {
                        mockContainerService.Setup(x => x.GetInfoByHandle(handles[0]))
                        .Returns((ContainerInfoApiModel)null);
                        mockContainerService.Setup(x => x.GetInfoByHandle(handles[1]))
                        .Returns((ContainerInfoApiModel)info[1]);
                    };

                    it["is not returned"] = () =>
                    {
                        result.Count.should_be(1);
                        result[handles[1]].Info.should_be(info[1]);
                    };
                };
            };
        }
        private void describe_()
        {
            describe["#BulkInfo"] = () =>
            {
                List <ContainerInfo> info = null;

                Mock <IContainerInfoService> mockContainerService = null;
                var handles = new string[] { "handle1", "handle2" };
                BulkInfoController controller = null;
                Dictionary <string, ContainerInfoEntry> result = null;

                before = () =>
                {
                    info = new List <ContainerInfo> {
                        new ContainerInfo(), new ContainerInfo()
                    };
                    mockContainerService = new Mock <IContainerInfoService>();
                    controller           = new BulkInfoController(mockContainerService.Object);
                };

                act = () => result = controller.BulkInfo(handles);


                context["when all requested containers exist"] = () =>
                {
                    before = () =>
                    {
                        mockContainerService.Setup(x => x.GetInfoByHandle(handles[0])).Returns(info[0]);
                        mockContainerService.Setup(x => x.GetInfoByHandle(handles[1])).Returns(info[1]);
                    };

                    it["returns info about the container"] = () =>
                    {
                        result.Count.should_be(2);
                        result[handles[0]].Info.should_be(info[0]);

                        result[handles[1]].Info.should_be(info[1]);
                    };
                };

                context["when GetInfoByHandle throws an exception"] = () =>
                {
                    before = () =>
                    {
                        mockContainerService.Setup(x => x.GetInfoByHandle(handles[0]))
                        .Throws(new Exception("BOOOOM"));
                        mockContainerService.Setup(x => x.GetInfoByHandle(handles[1]))
                        .Returns((ContainerInfo)info[1]);
                    };

                    it["returns each container with an error for the ones that error"] = () =>
                    {
                        result.Count.should_be(2);
                        result[handles[0]].Info.should_be_null();
                        result[handles[0]].Err.Message.should_contain("BOOOOM");
                        result[handles[1]].Info.should_be(info[1]);
                        result[handles[1]].Err.should_be_null();
                    };
                };

                context["when the container does not exist"] = () =>
                {
                    before = () =>
                    {
                        mockContainerService.Setup(x => x.GetInfoByHandle(handles[0]))
                        .Returns((ContainerInfo)null);
                        mockContainerService.Setup(x => x.GetInfoByHandle(handles[1]))
                        .Returns((ContainerInfo)info[1]);
                    };

                    it["returns a not exist error for handle1"] = () =>
                    {
                        result.Count.should_be(2);
                        result[handles[0]].Err.Message.should_contain("not exist");
                        result[handles[1]].Info.should_be(info[1]);
                    };
                };
            };
        }