001/* 002 * The contents of this file are subject to the license and copyright 003 * detailed in the LICENSE and NOTICE files at the root of the source 004 * tree. 005 */ 006package org.fcrepo.client; 007 008import static org.junit.Assert.assertEquals; 009import static org.junit.Assert.assertTrue; 010 011import java.util.HashMap; 012import java.util.Map; 013 014import org.junit.Test; 015 016/** 017 * @author bbpennel 018 */ 019public class HeaderHelpersTest { 020 021 @Test 022 public void testFormatQualityValues() { 023 final Map<String, Double> qualityMap = new HashMap<>(); 024 qualityMap.put("md5", 1.0); 025 026 assertEquals("md5;q=1.0", HeaderHelpers.formatQualityValues(qualityMap)); 027 } 028 029 @Test 030 public void testFormatQualityValuesNoQValue() { 031 final Map<String, Double> qualityMap = new HashMap<>(); 032 qualityMap.put("md5", null); 033 034 assertEquals("md5", HeaderHelpers.formatQualityValues(qualityMap)); 035 } 036 037 @Test 038 public void testFormatQualityValuesMultipleWithDifferentQ() { 039 final Map<String, String> qualityMap = new HashMap<>(); 040 qualityMap.put("md5", "1.0"); 041 qualityMap.put("sha-512", "0.4"); 042 043 final String result = HeaderHelpers.formatQualityValues(qualityMap); 044 assertTrue(result.contains("md5;q=1.0")); 045 assertTrue(result.contains("sha-512;q=0.4")); 046 } 047 048 @Test 049 public void testFormatQualityValuesMultipleSameQ() { 050 final Map<String, Double> qualityMap = new HashMap<>(); 051 qualityMap.put("md5", 1.0); 052 qualityMap.put("sha", 1.0); 053 qualityMap.put("sha-512", 0.4); 054 055 final String result = HeaderHelpers.formatQualityValues(qualityMap); 056 // can't guarantee order 057 assertTrue(result.contains("md5,sha;q=1.0") || result.contains("sha,md5;q=1.0")); 058 assertTrue(result.contains("sha-512;q=0.4")); 059 } 060 061 @Test 062 public void testFormatQualityValuesMultipleQ() { 063 final Map<String, Double> qualityMap = new HashMap<>(); 064 qualityMap.put("md5", null); 065 qualityMap.put("sha", null); 066 067 final String result = HeaderHelpers.formatQualityValues(qualityMap); 068 // can't guarantee order 069 assertTrue(result.contains("md5,sha") || result.contains("sha,md5")); 070 } 071}