public void TestPUTSetsTheCache()
        {
            // Arrange
            DataStore.CampusCache campusCache = new DataStore.CampusCache();
            mapsController        controller  = new mapsController(campusCache);
            HttpRequestMessage    request     = new HttpRequestMessage(HttpMethod.Put, "/maps/map1");
            string campusID = "testID";

            // Action
            Dictionary <string, Dictionary <string, float> > testNodes = new Dictionary <string, Dictionary <string, float> >();

            testNodes.Add("a", new Dictionary <string, float>());
            testNodes["a"].Add("b", 20);
            testNodes.Add("b", new Dictionary <string, float>());
            testNodes["b"].Add("q", 20);
            testNodes["b"].Add("c", 20);

            Models.CampusMap campusMap = mapsControllerTestsUtilities.GetACampusMap();


            IHttpActionResult actionResult = controller.Put(campusID, campusMap);

            // Assert
            Assert.AreEqual(campusMap.nodes, campusCache.GetCampusMap(campusID).nodes);
        }
        public void TestCallingPUTReturnsBadRequestErrorMessageResult()
        {
            // Arrange
            var controller             = new mapsController(new CampusCache());
            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, "/maps/map1");

            controller.ModelState.AddModelError("fakeError", "fakeError");

            // Action
            IHttpActionResult actionResult = controller.Put("", new Models.CampusMap()
            {
            });

            // Assert
            Assert.AreEqual(typeof(System.Web.Http.Results.BadRequestErrorMessageResult), actionResult.GetType());
        }
        public void TestCallingGETReturnNotFoundErrorMessageResult()
        {
            // Arrange
            mapsController testObj = new mapsController(mapsControllerTestsUtilities.GetMapNode1Node2CampusCache());

            testObj.Request = new HttpRequestMessage();
            testObj.ControllerContext.Configuration = new HttpConfiguration();

            // Action
            IHttpActionResult   actionResultMap            = testObj.Get("mapxxx", "node1", "node2");
            IHttpActionResult   actionResultNode1          = testObj.Get("map", "node1xxx", "node2");
            IHttpActionResult   actionResultNode2          = testObj.Get("map", "node1", "node2xxx");
            HttpResponseMessage actionResultMapSanityCheck = testObj.Get("map", "node1", "node2").ExecuteAsync(System.Threading.CancellationToken.None).Result;

            // Assert
            Assert.AreEqual(typeof(System.Web.Http.Results.NotFoundResult), actionResultMap.GetType());
            Assert.AreEqual(typeof(System.Web.Http.Results.NotFoundResult), actionResultNode1.GetType());
            Assert.AreEqual(typeof(System.Web.Http.Results.NotFoundResult), actionResultNode2.GetType());
            Assert.AreEqual(System.Net.HttpStatusCode.OK, actionResultMapSanityCheck.StatusCode); //Checking that NotFoundResult isnt always returned
        }