//or if you're using your "Static fields" design, you can switch/case on the name public static Animal CreateFromSerialized(SerializableAnimal serialized) { switch (serialized.Name) { case "Otter": return Animal.Otter } return(null); //or throw exception }
public void Deserialize_ReadsBinaryList() { //Arrange string writePath = System.Reflection.MethodBase.GetCurrentMethod().Name; bool expected = true; //Act StandardSerializeBinary(writePath, _expectedAnimalList); SerializableAnimal actualAnimal = _animalListDeserializer.Deserialize(writePath, _binary)[0]; bool actual = equal(_expectedAnimal, actualAnimal); WrapUp(writePath); //Assert Assert.AreEqual(expected, actual); }
public void Serial_WritesJSONArray() { //Arrange string writePath = System.Reflection.MethodBase.GetCurrentMethod().Name; bool expected = true; //Act _animalListSerializer.SerializeToFile(_expectedAnimalList, _json, writePath); SerializableAnimal actualAnimal = StandardDeserializeJson <List <SerializableAnimal> >(writePath)[0]; bool actual = equal(_expectedAnimal, actualAnimal); wrapup(writePath); //Assert Assert.AreEqual(expected, actual); }
public static Animal CreateFromSerialized(SerializableAnimal serialized) { return(new Animal(serialized.Name, serialized.Weight, HabitatSerializer.CreateFromSerialized(serialized.Habitat))); }