public void Serialize_FastlonnResource_with_only_own_links()
        {
            var fastlonn = new FastlonnResource
            {
                SystemId = new Identifikator {
                    Identifikatorverdi = "ABC123"
                },
                Attestert = new DateTime(),
                Anvist    = new DateTime(),
                Periode   = new Periode {
                    Start = new DateTime()
                },
                Prosent     = 10000,
                Beskrivelse = "Test",
                Kontostreng = new KontostrengResource()
            };

            fastlonn.AddArbeidsforhold(Link.with(typeof(Arbeidsforhold), "systemid", "1234"));

            var settings = new JsonSerializerSettings
            {
                ContractResolver = new LowercaseContractResolver()
            };
            var json = JsonConvert.SerializeObject(fastlonn, settings);

            Console.WriteLine(json);

            var deserializeObject = JsonConvert.DeserializeObject <FastlonnResource>(json);

            Assert.NotNull(deserializeObject);
            Assert.True(deserializeObject.Links.ContainsKey("arbeidsforhold"));
        }
        public void Serialize_FastlonnResource_with_deep_links()
        {
            var kontostreng = new KontostrengResource();

            kontostreng.AddAnsvar(Link.with("/administrasjon/kodeverk/ansvar/systemid/2"));
            kontostreng.AddArt(Link.with("/administrasjon/kodeverk/art/systemid/1"));
            kontostreng.AddFunksjon(Link.with("/administrasjon/kodeverk/funksjon/systemid/3"));

            var fastlonn = new FastlonnResource
            {
                SystemId = new Identifikator {
                    Identifikatorverdi = "ABC123"
                },
                Attestert = new DateTime(),
                Anvist    = new DateTime(),
                Periode   = new Periode {
                    Start = new DateTime()
                },
                Prosent     = 10000,
                Beskrivelse = "Test",
                Kontostreng = kontostreng
            };


            fastlonn.AddLonnsart(Link.with("/administrasjon/kodeverk/lonnsart/systemid/4"));
            fastlonn.AddArbeidsforhold(Link.with("/administrasjon/personal/arbeidsforhold/systemid/1234"));

            var settings = new JsonSerializerSettings();

            settings.ContractResolver = new LowercaseContractResolver();
            var json = JsonConvert.SerializeObject(fastlonn, settings);

            Console.WriteLine(json);

            var deserializeObject = JsonConvert.DeserializeObject <FastlonnResource>(json);

            Assert.NotNull(deserializeObject);
            Assert.True(deserializeObject.Links.ContainsKey("arbeidsforhold"));
            Assert.True(deserializeObject.Kontostreng.Links.ContainsKey("art"));
        }