Base64Unpacker.java

1
/*
2
 * Copyright 2006 - 2013
3
 *     Stefan Balev     <stefan.balev@graphstream-project.org>
4
 *     Julien Baudry    <julien.baudry@graphstream-project.org>
5
 *     Antoine Dutot    <antoine.dutot@graphstream-project.org>
6
 *     Yoann Pign��      <yoann.pigne@graphstream-project.org>
7
 *     Guilhelm Savin   <guilhelm.savin@graphstream-project.org>
8
 * 
9
 * This file is part of GraphStream <http://graphstream-project.org>.
10
 * 
11
 * GraphStream is a library whose purpose is to handle static or dynamic
12
 * graph, create them from scratch, file or any source and display them.
13
 * 
14
 * This program is free software distributed under the terms of two licenses, the
15
 * CeCILL-C license that fits European law, and the GNU Lesser General Public
16
 * License. You can  use, modify and/ or redistribute the software under the terms
17
 * of the CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
18
 * URL <http://www.cecill.info> or under the terms of the GNU LGPL as published by
19
 * the Free Software Foundation, either version 3 of the License, or (at your
20
 * option) any later version.
21
 * 
22
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY
23
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
24
 * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
25
 * 
26
 * You should have received a copy of the GNU Lesser General Public License
27
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
28
 * 
29
 * The fact that you are presently reading this means that you have had
30
 * knowledge of the CeCILL-C and LGPL licenses and that you accept their terms.
31
 */
32
package org.graphstream.stream.netstream.packing;
33
34
/**
35
*
36
* Copyright (c) 2010 University of Luxembourg
37
*
38
* @file Base64Unpacker.java
39
* @date Dec 20, 2011
40
*
41
* @author Yoann Pign��
42
*
43
*/
44
45
import java.io.IOException;
46
import java.nio.ByteBuffer;
47
48
/**
49
 * 
50
 */
51
public class Base64Unpacker extends NetStreamUnpacker {
52
53
	/* (non-Javadoc)
54
	 * @see org.graphstream.stream.netstream.packing.NetStreamUnpacker#unpackMessage(java.nio.ByteBuffer, int, int)
55
	 */
56
	@Override
57
	public ByteBuffer unpackMessage(ByteBuffer buffer, int startIndex,
58
			int endIndex) {
59
		try {
60 1 1. unpackMessage : Replaced integer subtraction with addition → NO_COVERAGE
			byte[] raw = Base64.decode(buffer.array(), startIndex, (endIndex-startIndex), Base64.NO_OPTIONS);
61 1 1. unpackMessage : mutated return of Object value for org/graphstream/stream/netstream/packing/Base64Unpacker::unpackMessage to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
			return ByteBuffer.wrap(raw);
62
			
63
		} catch (IOException e) {
64
			// TODO Auto-generated catch block
65 1 1. unpackMessage : removed call to java/io/IOException::printStackTrace → NO_COVERAGE
			e.printStackTrace();
66
		}
67 1 1. unpackMessage : mutated return of Object value for org/graphstream/stream/netstream/packing/Base64Unpacker::unpackMessage to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
		return null;
68
	}
69
70
	/* (non-Javadoc)
71
	 * @see org.graphstream.stream.netstream.packing.NetStreamUnpacker#packMessageSize(java.nio.ByteBuffer)
72
	 */
73
	@Override
74
	public int unpackMessageSize(ByteBuffer buffer) {
75
		try {
76
			byte[] raw = Base64.decode(buffer.array(),buffer.position(), 8,Base64.NO_OPTIONS);
77 1 1. unpackMessageSize : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
			return ByteBuffer.wrap(raw).getInt();
78
		} catch (IOException e) {
79
			// TODO Auto-generated catch block
80 1 1. unpackMessageSize : removed call to java/io/IOException::printStackTrace → NO_COVERAGE
			e.printStackTrace();
81
		}
82 1 1. unpackMessageSize : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
		return -1;
83
	}
84
85
	public static void main(String[] args) {
86
		Base64Packer packer = new Base64Packer();
87
		Base64Unpacker b = new Base64Unpacker();
88
89
		ByteBuffer source = ByteBuffer.allocate(9);
90
		
91
		source.putInt(-1).putFloat(0.1f);
92
		source.put((byte)'e');
93
		
94
		source.rewind();
95
		
96
		ByteBuffer bb = b.unpackMessage(packer.packMessage( source ) );
97
		
98
		bb.rewind();
99
		
100 1 1. main : removed call to java/io/PrintStream::println → NO_COVERAGE
		System.out.println(bb.getInt());
101 1 1. main : removed call to java/io/PrintStream::println → NO_COVERAGE
		System.out.println(bb.getFloat());
102 1 1. main : removed call to java/io/PrintStream::println → NO_COVERAGE
		System.out.println((char)bb.get());
103
	}
104
105
	/* (non-Javadoc)
106
	 * @see org.graphstream.stream.netstream.packing.NetStreamUnpacker#sizeOfInt()
107
	 */
108
	@Override
109
	public int sizeOfInt() {
110 1 1. sizeOfInt : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
		return 8;
111
	}
112
}

Mutations

60

1.1
Location : unpackMessage
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

61

1.1
Location : unpackMessage
Killed by : none
mutated return of Object value for org/graphstream/stream/netstream/packing/Base64Unpacker::unpackMessage to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

65

1.1
Location : unpackMessage
Killed by : none
removed call to java/io/IOException::printStackTrace → NO_COVERAGE

67

1.1
Location : unpackMessage
Killed by : none
mutated return of Object value for org/graphstream/stream/netstream/packing/Base64Unpacker::unpackMessage to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

77

1.1
Location : unpackMessageSize
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

80

1.1
Location : unpackMessageSize
Killed by : none
removed call to java/io/IOException::printStackTrace → NO_COVERAGE

82

1.1
Location : unpackMessageSize
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

100

1.1
Location : main
Killed by : none
removed call to java/io/PrintStream::println → NO_COVERAGE

101

1.1
Location : main
Killed by : none
removed call to java/io/PrintStream::println → NO_COVERAGE

102

1.1
Location : main
Killed by : none
removed call to java/io/PrintStream::println → NO_COVERAGE

110

1.1
Location : sizeOfInt
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 0.33